For one thing, you don't have to spawn (I think that's the right term) a second process if you use Perl's copy instead of the system command. Also, I find it easier to verify that your copy in fact worked correctly (though this can be done with a system call as well I'm sure).