in reply to Unix command working with Perl

shouldn't that read
$h = $ARGV[0]; $b = $ARGV[1]; system("mv $h $b");

You want to assign from $ARGV[0] to $h and not the other way round.

Apart from that I would suggest using File::Copy as your solution only works if you actually are on Unix:

use File::Copy; move($ARGV[0], $ARGV[1]);

Update: :(( typed too slow, a couple of other monks beat me to it ...

-- Hofmator