!/usr/bin/perl use strict; use warnings; use File::Util; my($f) = File::Util->new(); sub filesize { my ( $selfdir, $subdirs, $files, $depth ) = @_; print "$_ " . ( -s $_ ) . "\n" for sort { (-s $a) <=> (-s $b) } @$files; } $f->list_dir( '/tmp/dir1' => { recurse => 0, callback => \&filesize, pattern=>'\.pl$' } );