Seems like a lot of work to do somthing you can do off the command line, or in perl using bactics to exec shell commands. The /Y supresses overwrite warnings COPY /? for options.
#!/usr/bin/perl
print `copy /Y E:\\EudoraPro\\*.mbx Z:\\mail_test`;
print `copy /Y E:\\EudoraPro\\*.toc Z:\\mail_test`;
Anyway it should print even though in Perl we tend to use print most of the time rather than printf with parens C style. In fact it does print for me on Win2k and AS 633. You might try adding $|++ to the top of your script to force buffer flushing but the \n should do that anyways.