sub findfile { my ($target, $starting_points ) = @_; my $file = File::Next::files( { file_filter => sub { /$target$/ } }, "$starting_points" ); while ( my @files = $file->() ) { return $files[0], $files[1], $files[2]; #directory, filename, full path and name } }