#!perl -n
# llil2cmd.pl. Abbreviated version of llil2grt.pl.
chomp; ($w,$c) = split/\t/; $h{$w} += $c;
END {
$\=$/;
push @l, pack('NA*',-$v,"$k\t$v") while ($k,$v)=each %h;
print substr($_,4) for sort @l;
}
####
> time perl llil2grt.pl big1.txt big2.txt big3.txt >grt1.tmp
llil2grt start
get_properties : 8 secs
sort + output : 22 secs
total : 30 secs
real 0m33.475s
user 0m32.180s
sys 0m1.295s
##
##
> time perl llil2cmd.pl big1.txt big2.txt big3.txt >cmd1.tmp
real 0m28.937s
user 0m27.843s
sys 0m1.093s
> diff cmd1.tmp grt1.tmp
##
##
#!perl -n
# llil2cmd-long.pl. A long short version of llil2grt.pl.
BEGIN {
$tstart1 = time;
}
chomp; ($w,$c) = split/\t/; $h{$w} += $c;
END {
my $tstart2 = time;
$\=$/;
push @l, pack('NA*',-$v,"$k\t$v") while ($k,$v)=each %h;
print substr($_,4) for sort @l;
my $tend2 = time;
my $taken1 = $tstart2 - $tstart1;
my $taken2 = $tend2 - $tstart2;
my $taken = $tend2 - $tstart1;
warn "get_properties : $taken1 secs\n";
warn "sort + output : $taken2 secs\n";
warn "total : $taken secs\n";
}
##
##
$ time perl llil2cmd-long.pl big1.txt big2.txt big3.txt >long1.tmp
get_properties : 7 secs
sort + output : 21 secs
total : 28 secs
real 0m28.629s
user 0m27.707s
sys 0m0.917s
> diff long1.tmp grt1.tmp
##
##
wget https://www.cpan.org/src/5.0/perl-5.36.0.tar.gz
(update: run sha256sum perl-5.36.0.tar.gz and check matches https://www.cpan.org/src/5.0/perl-5.36.0.tar.gz.sha256.txt)
tar -xzf perl-5.36.0.tar.gz
cd perl-5.36.0
./Configure -des -Dprefix=$HOME/localperl
make 2>&1 | tee make.tmp
make test 2>&1 | tee test.tmp
make install 2>&1 | tee install.tmp
##
##
use 5.036;
use experimental qw/for_list declared_refs/;
##
##
while (my ($k, $v) = each %{$href}) { push @lines, pack('NA*', -$v, "$k\t$v") }
##
##
for my ($k, $v) (%{$href}) { push @lines, pack('NA*', -$v, "$k\t$v") }
##
##
$ cd $HOME/localperlmodules
$ type perl
perl is hashed ($HOME/localperl/bin/perl)
$ wget https://www.cpan.org/modules/by-module/Roman/Roman-1.24.tar.gz
$ tar -xzf Roman-1.24.tar.gz
$ cd Roman-1.24
$ perl Makefile.PL 2>&1 | tee make.tmp
$ make 2>&1 | tee make.tmp
$ make test 2>&1 | tee test.tmp
$ make install 2>&1 | tee install.tmp