method freeze
Documentation for method freeze assembled from the following types:
class Pair
From Pair
(Pair) method freeze
Defined as:
method freeze(Pair:D:)
Makes the value of the Pair read-only, by removing it from its Scalar container, and returns it.
my $str = "apple";
my $p = Pair.new('key', $str);
$p.value = "orange"; # this works as expected
$p.say; # OUTPUT: «key => orange»
$p.freeze.say; # OUTPUT: «orange»
$p.value = "a new apple"; # Fails
CATCH { default { put .^name, ': ', .Str } };
# OUTPUT: «X::Assignment::RO: Cannot modify an immutable Str (apple)»
NOTE: this method is deprecated as of 6.d language version. Instead, create a new Pair, with a decontainerized key/value.
$p.=Map.=head.say; # OUTPUT: «orange»