use File::Find; use strict; my $path = "."; #default path my $num = 10; #default number my $num_flag = 0; my @paths; #array to hold paths my $num_pahts = 0; foreach my $argv (@ARGV) { if ( $argv =~ m/^-/ ) { $num_flag++; if ($num_flag > 1) { print STDERR "Cannot have more than one entry for number of users\n"; usage_exit(1); } $num = substr($argv, 1); print ("num is, $num\n"); } # if it matches slash or is a path if ( $argv =~ m/^\// ) { $num_paths++; print ("num_path, $num_paths\n"); $paths[$num_paths] = $argv; } } # set default path if no path argument is supplied if ($num_paths == 0) { @paths = <$path/*>; } my %size; my @sorted; find (sub { $size{$File::Find::name} = -s if -f || -l; }, @paths );