![]() |
|< 1 2 >| | ![]() |
11 Einträge, 2 Seiten |
1
2
3
4
5
6
7
8
9
use Tie::File;
my $file = '/path/to/file';
my @interesting_lines;
{
tie my @array,'Tie::File', $file or die $!;
@interesting_lines = @array[999,$#array];
untie @array;
}
<IN> for 1..1000;
Quote$INPUT_LINE_NUMBER
$NR
$.
Current line number for the last filehandle
accessed.
Each filehandle in Perl counts the number of lines
that have been read from it. (Depending on the
value of $/, Perl's idea of what constitutes a
line may not match yours.) When a line is read
from a filehandle (via readline() or "<>"), or
when tell() or seek() is called on it, $. becomes
an alias to the line counter for that filehandle.
You can adjust the counter by assigning to $., but
this will not actually move the seek pointer.
Localizing $. will not localize the filehandle's
line count. Instead, it will localize perl's
notion of which filehandle $. is currently aliased
to.
$. is reset when the filehandle is closed, but not
when an open filehandle is reopened without an
intervening close(). For more details, see "I/O
Operators" in perlop. Because "<>" never does an
explicit close, line numbers increase across ARGV
files (but see examples in "eof" in perlfunc).
You can also use "HANDLE->input_line_number(EXPR)"
to access the line counter for a given filehandle
without having to worry about which handle you
last accessed.
(Mnemonic: many programs use "." to mean the cur-
rent line number.)
![]() |
|< 1 2 >| | ![]() |
11 Einträge, 2 Seiten |