|Think about Loose Coupling|
Re^4: You *Can* Catch errors in closing lexical filehandlesby ihb (Deacon)
|on Sep 27, 2004 at 23:09 UTC||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.
Read argumentation in its context!