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