> On 14/08/18 13:08, ToddAndMargo wrote:
>> Hi All,
>>
>> The Perl 5 guys have it pounded into my head that I
>> always had to check my substitutions to see if they
>> worked if not working would crash the program.
>>
>> So in Perl 6 I have:
>>
>> $ p6 'my $x="abc"; if s/b/z/ {say "sub worked"}else{say "sub failed"};
>> say "$x";'
>>
>> Use of uninitialized value of type Any in string context.
>> Methods .^name, .perl, .gist, or .say can be used to stringify it to
>> something meaningful.
>>    in block <unit> at -e line 1
>> sub failed
>> abc
>>
>>
>> What am I doing wrong?
>>
>> Many thanks,
>> -T

On 08/14/2018 04:10 AM, Timo Paulssen wrote:
You're putting your starting string in a variable, $x, but aren't
telling the s/// operator specifically what to operate on, so it
defaults to $_, which is still at its default value.



Thank you!

$ p6 'my $x="abc"; if $x ~~ s/b/z/ {say "sub worked"}else{say "sub failed"}; say "$x";'
sub worked
azc

$ p6 'my $x="abc"; if $x ~~ s/x/z/ {say "sub worked"}else{say "sub failed"}; say "$x";'
sub failed
abc

Reply via email to