Re: [PATCH RFC 3/6] send-email: Handle "GIT:" rather than "GIT: " during --compose
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Apr 12, 2009, 00:59 UTC
- Message-ID
- <7v3aced6vr.fsf@gitster.siamese.dyndns.org>
- In-Reply-To
- <b4087cc50904111345v4787f38al9d7d234de8a6d24e@mail.gmail.com>
Michael Witten <mfwitten@gmail.com> writes:
Show 11 quoted lines
>> Because "while (<>)" does not localize $_, you are clobbering it in the >> caller's context. I do not know if any of the the existing callers cares, >> but it is a change in behaviour. > > How about: > > while (local $_ = <$fh>) > > Or, in our case, this: > > while (my $_ = <$fh>)
Special variables like $_ cannot be made into lexicals, unless you know you will only run with a very recent version of Perl (5.9.1, I think).
If you do not want to worry about portability, typically it is easiest to say "local ($_)" upfront in the beginning of a sub.
I do not understand why you want to change the original
while (my $line = <$fh>) {
...
}though.