use strict; use warnings; use Archive::Tar; die "no file?" unless $ARGV[0] and -f $ARGV[0]; my $size = 0; my @arch = Archive::Tar->new($ARGV[0])->list_files([qw(size)]); $size += $_->{size} for @arch; eval "use Number::Format"; if( $@ ) { print "$size\n"; } else { my $fmt = new Number::Format; print "", $fmt->format_bytes( $size, 1), "\n"; }