спасибо, прям то, что я хотел, а что значит конструкция map {$_, $c*=1024} qw(K M G T P); ?
use Smart::Comments;
my $c = 1;
my %hum_comp = map {$_, $c*=1024} qw(K M G T P);
$hum_comp{''} = 1;
### %hum_comp
показывает
### %hum_comp: {
### '' => 1,
### G => 1073741824,
### K => 1024,
### M => 1048576,
### P => '1.12589990684262e+015',
### T => '1099511627776'
### }
конструкция, конечно интересная, но по-моему это усложнение
29.09.2011, 02:31, "Denis Evdokimov" <[email protected]>:
Как и обещал, альтернативный вариант
my $c = 1;
my %hum_comp = map {$_, $c*=1024} qw(K M G T P);
$hum_comp{''} = 1;
print map $_->[1], sort{$b->[0] <=> $a->[0]} map {/^(\d+(?>\.\d+)?)(\w?)/; [$1*$hum_comp{$2}, $_]} <>
и чуть более сжатый
du -h | perl -e'%hc=map{$_,$a=$a?$a*1024:1}qw(K M G T);print map $_->[1],sort{$b->[0]<=>$a->[0]}map{/^(\d+(?>\.\d+)?)(\w?)/;[$1*$hc{$2},$_]}<>'
--
Moscow.pm mailing list
[email protected] | http://moscow.pm.org
--
Nikolay Mishin
Nikolay Mishin
-- Moscow.pm mailing list [email protected] | http://moscow.pm.org
