What's this mean?
sub sub1 { my $fh;
open $fh, 'vsfull.csv';
binmode $fh;
my @lines;
my $block; my $left = '';
while( read $fh, $block, 8192 ){
$block = $left . $block;
my $i = index $block, "\n";
while($i > 0){
push @lines, substr($block,0,$i);
substr($block,0,$i+1,'');
$i = index $block, "\n";
}
$left = $block;
}
}
sub sub2 { my $fh;
my @lines;
open $fh, 'vsfull.csv';
while(<$fh>){ push @lines, $_ };
}
sub sub3 { my $fh; open $fh, 'vsfull.csv'; my @lines = <$fh>; }
sub sub4 { my $fh; open $fh,'vsfull.csv';my @lines = readline($fh); }
#Hmark::
use Benchmark 'cmpthese';
cmpthese(
-3,
{ readbig => \&sub1,
whilelp => \&sub2,
better => \&sub3,
butter => \&sub4,
});
__END__
Benchmark: running better, butter, readbig, whilelp, each for at least
+ 3 CPU seconds...
better: 3 wallclock secs ( 2.20 usr + 1.02 sys = 3.22 CPU) @ 37
+2.36/s (n=1199)
butter: 3 wallclock secs ( 2.17 usr + 1.04 sys = 3.21 CPU) @ 37
+3.52/s (n=1199)
readbig: 3 wallclock secs ( 3.01 usr + 0.12 sys = 3.13 CPU) @ 52
+.72/s (n=165)
whilelp: 3 wallclock secs ( 2.17 usr + 1.02 sys = 3.19 CPU) @ 27
+2.10/s (n=868)
Rate readbig whilelp better butter
readbig 52.7/s -- -81% -86% -86%
whilelp 272/s 416% -- -27% -27%
better 372/s 606% 37% -- -0%
butter 374/s 609% 37% 0% --
____________________________________________________
** The Third rule of perl club is a statement of fact: pod is sexy.