http://www.perlmonks.org?node_id=394391


in reply to •Re^3: You *Can* Catch errors in closing lexical filehandles
in thread Catching errors in closing lexical filehandles

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!