use Data::Dumper; use File::Find qw/find/; my $dir = 'c:/test'; my @res; find( { wanted => sub { -f and /\.xml$/ and push @res, $File::Find::name }, follow => 1 }, $dir ); print Dumper( \@res );