http://www.perlmonks.org?node_id=191225


in reply to Re: Optimizing existing Perl code (in practise)
in thread Optimizing existing Perl code (in practise)

my $text = `cat $file`;
If you're gonna do that, you might as well do
my $text = join '', <FileHandle->new($file)> and still do it in perl. Frankly I don't know which is faster but I would choose to do it the second way because I think it would be faster.

Replies are listed 'Best First'.
Re: Optimizing existing Perl code (in practise)
by Abigail-II (Bishop) on Aug 19, 2002 at 16:22 UTC
    I'd never choose the second method. With the first, it's immediately clear what it does. With the second, it isn't. And somehow I doubt it's faster - it certainly doesn't look like it, as you first make a list of all the lines, then join them together, meaning you get more than double the memory usage. I'd rather do
    my $text = do {local (@ARGV, $/) = $file; <>};

    "Still do it in Perl" isn't a goal, IMO.

    Abigail