#! perl -slw use strict; sub scaleIt { my( $size, $n ) =( shift, 0 ); ++$n and $size /= 1024 until $size < 1024; return sprintf "%.2f %s", $size, ( qw[ bytes KB MB GB ] )[ $n ]; } my $size = -s $ARGV[ 0 ]; print "$ARGV[ 0 ]: ", scaleIt $size; __END__ P:\test>for %f in (data\*) do @test1 %f data\10GB.dat: 9.77 GB data\10Mrand.dat: 85.83 MB data\10Mrand.pp: 0.00 bytes data\10Msort.p: 0.00 bytes data\10Msort.pp: 0.00 bytes data\1mb.dat: 1.06 MB data\1Mx16384.dat: 15.26 GB data\1Mx4096: 3.81 GB data\50mb.dat: 52.93 MB data\5mb.dat: 5.29 MB ...