neybar has asked for the wisdom of the Perl Monks concerning the following question:
I have a regex that matches parts of a date and then sticks the matches into $year $month and $day variables. In stead of using the standard $1, $2, $3 variables I wanted to play with embedding perl code into the regex.
The regex works just great on a single pass. If I stick the regex in a sub and access it more than once, then the $year,$month and $day variables only get filled on the first time it is accessed. Here is code:
#!/usr/bin/perl use Data::Dumper; use strict; #use re 'debug'; my $foo_year = "2004-11-12 12:40:42"; test($foo_year); test($foo_year); test($foo_year); sub test { my ($date) = @_; print $date,"\n"; my ($year,$month,$day); $date =~ m/ (\d+) (?{ $year = $^N }) - (\d+) (?{ $month = $^N }) - (\d+) (?{ $day = $^N }) /x; print "$year-$month-$day\n"; }
It seems like $^N isn't getting set on subsequent calls to the regex.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: regex and embedded perl code
by ikegami (Patriarch) on Feb 07, 2006 at 19:28 UTC | |
|
Re: regex and embedded perl code
by GrandFather (Saint) on Feb 07, 2006 at 19:54 UTC | |
|
Re: regex and embedded perl code
by borisz (Canon) on Feb 07, 2006 at 22:25 UTC | |
|
Re: regex and embedded perl code
by shotgunefx (Parson) on Feb 07, 2006 at 22:53 UTC | |
|
Re: regex and embedded perl code
by Boyd (Initiate) on Feb 07, 2006 at 23:08 UTC |