http://qs321.pair.com?node_id=866089


in reply to Copying a file across servers in DOS

You can run external commands in Perl with system(), exec() or backticks/qx():-

# Note escaped slashes! system("xcopy dos.bat \\\\machine.b\\share\\")

You might also find the Shell module useful, as it will allow you to use xcopy as if it were a Perl command:-

use Shell qw(xcopy); xcopy("dos.bat", "\\\\machine.b\\share\\");

However, Perl does support UNC-style paths (if your OS does), so you could use plain ol' open() or a more elaborate (robust?) wrapper like File::Copy:-

open LOCAL, "dos.bat" or die $!; open REMOTE, "//machine.b/share/dos.bat" or die $!; print REMOTE <LOCAL>; use File::Copy; copy("dos.bat", "//machine.b/share/dos.bat") or die $!;

(Note that the native Perl calls support the alternate use of forwardslashes, which will save you from excessive escaping of UNC paths.)

    --k.