A "rename" or "move to another directory" is normally a very efficient file system operation. It will not normally "destroy" the source until the "destination' has been created - this is basically a modification of a directory entry - no actual file bits on the disk get changed, just "pointers" to those bits.
#!/usr/bin/perl -w
use strict;
my $newdir ="something";
foreach my $file (glob "*.txt")
{
rename $file, "$newdir/$file" or
warn "rename $file to $newfile failed: $!\n";
}
# $file will still exist if rename fails
There is no need to make a back-up of a file before you rename it ("move" it to another directory). There are differences between copy and mv but basically it will work or it will not. If not, the original file is left intact.