in reply to Re^2: How does $. work in one liner?
in thread How does $. work in one liner?
In fact Eily is precise as always elevenfly, and he pointed exactly where $. is special in oneliners.
He gave you the definition, i'll add an example. Given a.txt and b.txt as following:
if you use $. to check line number (and $. is implicit for a bare .. flip-flop operator), you have:#cat a.txt a file line 1 a file line 2 a file line 3 #cat b.txt b file line 1 b file line 2 b file line 3
and so is because $. does not reset automatically for an implicit close of the filehandle (and -n iterates across file given as arguments and reopen each time ARGV so without explicitly closing it).#perl -ne "print if 1..2" a.txt b.txt a file line 1 a file line 2
But if you use the right idiom close ARGV if eof everything runs as expected: $. is reset by the explicit close that happens only if eof is encounterd:
#perl -ne "print if 1..2; close ARGV if eof" a.txt b.txt a file line 1 a file line 2 b file line 1 b file line 2
L*
There are no rules, there are no thumbs..
Reinvent the wheel, then learn The Wheel; may be one day you reinvent one of THE WHEELS.
Reinvent the wheel, then learn The Wheel; may be one day you reinvent one of THE WHEELS.
|
---|
In Section
Seekers of Perl Wisdom