#!/usr/bin/perl -w use strict; use File::Find; my $base_dir = "C:/Temp"; my @pdf_files; find(\&collect_pdf_files, $base_dir); print @pdf_files; sub collect_pdf_files { return unless (-f); # only real files, not directories return unless (/.pdf$/); # continue if name ends in .pdf push (@pdf_files, $File::Find::name); } #prints: C:/Temp/something.pdf