in reply to Unexpected matching results
G'day hdb,
"How can this be?"
The underlying problem is that "$1" can only have one value for each iteration of map.
If you swap the CAUSE and AFFECT (__DATA__) lines, you get the same result; however, if you swap the cause and effect (map) lines, you get both values set to FAIL. Also, removing CAUSE or AFFECT from __DATA__ correctly gives a match result and an UNDEF.
"And how can it be fixed?"
This worked for me:
'cause' => ((/CAUSE (\S+)/)[0] || 'UNDEF'), 'effect' => ((/AFFECT (\S+)/)[0] || 'UNDEF'),
"(Must be a case of Perl punishing my vanity...)"
If you say so :-)
Update: Sorry, not sure what happened, I just typed the wrong words: s{you get the correct result.}{you get both values set to FAIL.}
-- Ken
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Unexpected matching results
by hdb (Monsignor) on Sep 06, 2013 at 08:29 UTC |