use strict; use warnings; use 5.010; use File::Find; use File::Copy; my $destination_dir = "/Users/me/Pictures/a b c d"; my $volume_name = "/Volumes/Volume\\ Name"; #need double slash in path for glob() in next line #(see glob docs) for (glob "$volume_name/*") { if (-d) { find(\&wanted, $_); } } sub wanted { if (-f && /\.NEF$/) { my $new_path = "$destination_dir/$_"; say $_; move $_, $new_path or warn "Couldn't move $_: $!"; #**LINE 30*** } }