in reply to Undefined subroutine &main::copy called

As stated in the File::Copy::Recursive documentation, there is no copy method. Take a look at the fcopy method as described in the documentation. If you're not going to do recursive file copies perhaps you should look at using File::Copy, which does have a copy method.

Update: I notice you don't use strict; use warnings;. Read Use strict and warnings and Use strict warnings and diagnostics or die and consider the issues raised.