use File::Find::Rule; my $root_in = "E:/PGPTool/dept/AIS/dropbox"; aprint "Before:\n"; foreach (@ARGV) { print "$_\n"; } # replace wildcards and directories in @ARGV with actual files/folders @ARGV = map glob ("$root_in/$_"), @ARGV; eval { @ARGV = find (file => in => \@ARGV) }; foreach (@ARGV) { $_ =~ s/($root_in\/)(.+)/$2/; } print "\nAfter:\n"; foreach (@ARGV) { print "$_\n"; } #### glob ("'$root_in/$_'"), @ARGV;