Re: perl head and tail command ?
- From: rob.dixon@xxxxxxx (Rob Dixon)
- Date: Mon, 28 Apr 2008 19:12:39 +0100
Richard Lee wrote:
Rob Dixon wrote:
Richard Lee wrote:
I would imagine linux's head command can be replaced w/ chop
I asked this because I have a filehandle which was,
open $source, '/tmp/server.txt' ( and no doing head -1 /tmp/server.txt
is not an option since I need to go through some other stuff
before i need to issue below command )
and I wanted to do
my $top = `head -1 $source`
my $bottom = `tail -1 $source`
but I realized I cannot do $source in back tick.
so I imagine i can do
my $top = chop $source;
But what about the $bottom one?
The chop() function simply removes the last character from a string and returns it. Since $source isn't a string you would get an error. Your best bet is likely to be the Tie::File module. For instance
use strict;
use warnings;
use Tie::File;
tie my @file, 'Tie::File', '/tmp/server.txt' or die $!;
my ($top, $bottom) = @file[0, -1];
HTH,
Rob
when you are doing it to filehandle vs array, which consumes more memory?
my source file is about 100,000 lines...
open my $source, 'tmp/server.txt' or die !$;
VS
tie my @file, 'Tie::File', '/tmp/server.txt' or die $!;
Neither of them use any significant memory until you start reading from the file. Unless you mess about with file positioning with seek() and tell(). the only way to retrieve the last record in a file using a standard file handle is to read all the way through it one line at a time. The documentation for Tie::File says this:
The file is *not* loaded into memory, so this will work even for
gigantic files.
So it is likely to be best for your needs.
However, you should not worry about speed or memory usage until you have written the clearest program you can and then find that it consumes too many resources.
HTH,
Rob
.
- Follow-Ups:
- Re: perl head and tail command ?
- From: Gunnar Hjalmarsson
- Re: perl head and tail command ?
- References:
- perl head and tail command ?
- From: Richard Lee
- Re: perl head and tail command ?
- From: Rob Dixon
- Re: perl head and tail command ?
- From: Richard Lee
- perl head and tail command ?
- Prev by Date: Re: perl head and tail command ?
- Next by Date: Re: web scraping
- Previous by thread: Re: perl head and tail command ?
- Next by thread: Re: perl head and tail command ?
- Index(es):