use File::Copy; $basedir='/path/to/files'; $foo = $_; $foo =~ s#/#slash#g; $foo =~ s#->#arrow#g; $fubar = "$basedir/$_"; copy($fubar, "$basedir/$foo"); $scp->put("$basedir/$foo"); system('rm', "$basedir/$foo") && die "Can't remove $foo:$!\n";