#!/usr/bin/perl use warnings; use strict; use File::Find; my @filtered = 'aaa/'; my @results; find(sub {callback(\@results)}, @filtered); print "$_\n" for @results; sub callback { my ($results) = @_; push @$results, $File::Find::name if /\.pl$/; }