P is for Practical | |
PerlMonks |
Re^4: You *Can* Catch errors in closing lexical filehandlesby ihb (Deacon) |
on Sep 27, 2004 at 23:09 UTC ( [id://394391]=note: print w/replies, xml ) | Need Help?? |
And I just verified that 5.8.5 doesn't unset the variables, so it works as it always has. Ah, indeed. I forgot that I've also tried it with the same result as you. I brought it up on freenode #perl. I considered it a bug and I still do. It's either a documentation bug or a perl bug. I don't think the documentation can be interpreted as you suggest. It clearly says "if the match fails". I believe this is referring to the fact that if a match has $1..$6 in one successful match, then only $1..$2 in the next match, that $3..$6 are more carefully set to undef now. That's the behaviour I get for perl version 5.005_03 built for sun4-solaris. I interpret the "more consistently" part as a mismatch unsets all, since that behaviour would be more consistant with how it already works when $3 .. $6 is unset/not matched; failing a match would mean "you didn't match $1 .. $n so it should be unset". Whether or not the behaviour is more consistant I won't argue over, but this is how I interpret the documentation. I assumed this behaviour change was due to some considering that the values in the regex variables after a failed match are "false data", as the documentation calls it. I assumed it was an attempt to make Perl DWIM, for some definition of I. ihb Read argumentation in its context!
In Section
Seekers of Perl Wisdom
|
|