Documentation for method raw

Documentation for method raw, assembled from the following types:

class Parameter

From Parameter

(Parameter) method raw

Defined as:

method raw(Parameter:D: --> Bool:D)

Returns True for raw parameters.

sub f(\raw{
    raw = 5;
}
f(my $x);   # works 
f(42);      # dies 
CATCH { default { put .^name''.Str } };
# OUTPUT: «X::Assignment::RO: Cannot modify an immutable Int␤» 

Raw parameters bind either a variable or a value passed to it, with no decontainerization taking place. That means that if a variable was passed to it, you can assign to the parameter. This is different from rw-parameter which can only bind to variables, never to values.

This is the normal behavior for parameters declared with a sigil of '\', which is not really a sigil insofar as it is only used on the parameter. Other parameters may become raw through use of the 'is raw' trait. These still use their sigil in code.

sub f($raw is raw{
    $raw = 5;
}