in reply to Unix command working with Perl

If this is the entirety of your script then the reason it won't work is that you're assigning to @ARGV instead of from it, so $h and $b will be undefined. However if this is just a snippet then ...

Are you sure mv is in the PATH? Also you'll want to quote $h and $b to protect against spaces if you want to use command-line programs. Probably a better option is to use File::Copy as it can run anywhere perl can and is a core module e.g

use File::Copy; move($ARGV[0], $ARGV[1]);
Another thing to be weary of is $b as it is a special variable associated with sort().
HTH

_________
broquaint