#!/usr/bin/perl use strict; use warnings; use File::Find; # the dir you're 'find'ing from my $dir = shift || '.'; # the file you're looking for my $file = 'blah'; # the results you want my @results; # the function you perform on each find value sub looking_for_file { # push full filename to an array if file and name is $file push(@results, $File::Find::name) if(-f $_ && $_ eq $file); }; # the result you want, using File::Find::find() # (not the external 'find' program) find \&looking_for_file, $dir; # print your results print("my results are: @results\n"); #### #!/usr/bin/perl use strict; use warnings; use File::Find; # the shorter version my @results; find sub{-f $_ && $_ eq 'blah' && push(@results,$File::Find::name)}, shift || '.'; print("my results are: @results\n");