The match runs to completion before the map even starts.
At the time your map runs, $1 and $2 are what they are at the end of the global match.
Most likely you want pairs from List::Util:
foreach my $pair ( pairs /(\d+)\s+(\S+)/mg ) { my ( $key, $value ) = @$pair; ... }
... or a while loop:
$h{ $1 } = $2 while /(\d+)\s+(\S+)/mg;
In reply to Re: regex question
by Corion
in thread regex question
by morgon
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |