in reply to my $1

$1 and $2 are package variables, not lexicals. You can nest their contents with local. Lexical $_ is a new addition from 5.10.0 onwards.

Best practice is simply to copy out $1 and ilk to lexicals, the way you're doing it (but within a conditional, checking that the match succeeded).

• another intruder with the mooring in the heart of the Perl

Replies are listed 'Best First'.
Re^2: my $1
by mltucker (Initiate) on Apr 23, 2009 at 21:26 UTC

    Thanks for the reply.

    Ok, so could I use local for $1 and $2 in the same way that I use my for $_? This isn't working how I expected it to.

    I'm not sure if this is relevant, but the one that I'm having trouble with is the multiplication, where I use both the originals and the recursive call results:

    return "($1)*(".diff($2).")+($2)*(".diff($1).") if m/(.+?)\*(.+)/;

    This works fine using $capt1 = $1, but I'm curious as to whether it can be done using local or with the double quotes...

    -Mark