use strict; use warnings; recdir( shift || '.' ); exit 0; sub recdir { my ($dir) = @_; opendir my $dh, $dir or die $!; while ( my $file = readdir $dh ) { next if $file eq '.' or $file eq '..'; my $full_name = "$dir/$file"; if ( -x -r -d $full_name ) { recdir($full_name); } elsif ( -r -f _ ) { my $size = -s _; next if $size < 500; print $full_name, ' ', $size, "\n"; } } }