use File::Find; sub wanted { $a=$File::Find::name; return if -l $a; # Necessary? $o=(stat($a))[4]; push( @{$catalog{$o}}, $a); } find(\&wanted, "/home/ul");