use strict;
"blah" =~ /(a)/; # now we've set $1 at the global scope
my $i = "mmmm9";
my $a = match_rtn( $i );
print $a, "\n";
$i = "mmm";
$a = match_rtn( $i );
print $a, "\n"; # ook! this isn't undefined!
sub match_rtn {
my $str = shift;
$str =~ m/(\d+)/;
return $1;
}
####
{
$_ = 'blah';
/(a)/;
print "$1\n"; # prints: a
}
print "$1\n"; # unitialized warning
####
$_ = 'blah';
/(\w)/;
print "$1\n"; # prints: b
/(\d)/;
print "$1\n"; # still prints: b
{
/(a)/;
print "$1\n"; # prints: a
}
print "$1\n"; # prints: b