Oops, caught my own mistake... In a message dated Fri, 12 Apr 2002, Trey Harris writes: > In a message dated Fri, 12 Apr 2002, Luke Palmer writes: > > sub printRec { > > my $p = chomp(shift // $_); > > print ":$_:\n" > > }
[Should be equivalent to] > sub printRec { > my $p = chomp(shift // shift); > print ":$p:\n"; > } Actually, it should be equivalent to sub printRec { my $p = chomp(shift // @_[0]); print ":$p:\n"; } No shifting is happening just by referring to $_. Because $_ is always the topic, which is always the first parameter to a block, which in subroutines is @_[0], right? So in a sub, $_ == @_[0]. The only question I have is if you modify @_ with a shift, does $_ continue to point at the old @_[0], or does it now point at the new @_[0], the original @_[1]? Trey