> On 13 Mar 2017, at 22:06, ToddAndMargo <toddandma...@zoho.com> wrote:
> 
> Hi All,
> 
> $ perl6 -e 'my $x="ab12cd"; $x ~~ m/ab(1q2)cd/; say "$x\n\$0=<$0>\n";'
> Use of Nil in string context in block <unit> at -e line 1
> ab12cd
> $0=<>
> 
> With out the "q" in this, it works.  I deliberately put
> the "q" to see what would happen when a patter was not
> found.
> 
> Is there a way around the "use of nil" finger wag
> if a patter is not found?

The Nil is not caused by the smart match, but from your attempt to display the 
first positional capture (aka $0) of a match that failed.


> Or should I always test for its presence first if
> there is a possibility the pattern might not exist?

You should test whether the smart match was successful.

    my $x="ab12cd"; say "$x\n\$0=<$0>\n” if $x ~~ m/ab(1q2)cd/;



Liz

Reply via email to