alex chen wrote:
> hi, all
> 
> i want to know how to get the last line of
> a file .i know the func read has a paramenter offset but i don't know how to
> use it.please help!!!

the easy way (but inefficient):

  # read until the last line
  open F, "file.txt" or die $!;
  $last=$_ while <F>;

the more (though probably not the *most*) efficient way:

  # position pointer at the end of file, and then search for newlines
  open F, "file.txt" or die $!;
  seek F, 0, 2;
  while ($pos = tell F) {
    seek F, -($pos > 1024 ? 1024 : $pos), 1 or die;
    read F, $block, 1024;
    $_ .= $block;
    do {$last=$1; print ">>$last"; last} if /.+\n(.+)/s;
  }
  print "Last line is: $last";

hope it helps.

-- 
dave


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to