http://qs321.pair.com?node_id=588034


in reply to ?: and saving backreferences

I'm rather confused as to what "because the $1 backreference is lost once you exit the scope of the if/else" means to you, to me it sounds like you think $1 is cleared after you exit the scope it was declared in, which is clearly not true.

Am I missinterpreting your statements some how?

Yeah, I was missinterpreting. Consider this retracted.

Replies are listed 'Best First'.
Re^2: ?: and saving backreferences
by ikegami (Patriarch) on Dec 06, 2006 at 06:10 UTC

    Did you run the code the OP posted? Since at least 5.6.1, the $1 set by the regexp inside the if is no longer in scope outside the if. The following illustrates this clearly.

    'a' =~ /(.)/; { 'b' =~ /(.)/; print("$1\n"); # b } print("$1\n"); # a

    This is documented in perlvar.

      You are quite correct and I was missinterpreting his comment. Consider it retracted.