use File::Find; sub find_dirs { my @dirlist; find(sub { return unless -d $_; push(@dirlist, $File::Find::name); }, @_); return @dirlist; } { # Not a global. my @dirlist = find_dirs(shift(@ARGV)); # Use @dirlist here }