use File::Spec::Functions; opendir (my $dh, $dir); @img = map { catfile($dir,$_) } grep /\.(jpe?g|gif|png|bmp)$/i, readdir $dh; closedir $dh; use Path::Tiny 'path'; @img = path( $dir )->children( qr/\.(jpe?g|gif|png|bmp)$/i ); use File::Find; find(sub { push @img, $File::Find::name if /\.(jpe?g|gif|png|bmp)$/i && $dir eq $File::Find::dir }, $dir); #### find(sub { push @img, $File::Find::name if /\.(jpe?g|gif|png|bmp)$/i }, $dir);