my %a=(); #their files may have @ signs, yea.. sigh # from if ("$$DMS{CONF}{DOC}/$filepath"=~m/^([\/_\@\w .-]+)$/){ $a{from} = $1; } #to if ("$$DMS{CONF}{DOC}/$$DMS{S}{session_file}/$$DMS{F}{$filepath}{file_name}"=~m/^([\/_\@\w .-]+)$/){ $a{to}=$1; } $a{from}=~m/\w/ or die("from failed untaint"); $a{to}=~m/\w/ or die("to failed untaint"); my $err = `mv "$a{from}" "$a{to}"`; # and here we freak out if ($err){ die("mov problem.. [$err]"); }