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


in reply to system and pipes

It is commendable that you're calling system with an array of references, because that avoids some of the shell exploits.

However, since you intend to use shell redirection to accomplish your command, you can't do it this way.

The easy way to do it would be:

system("$tar $taropts $backupdir | $ssh $user\@$remotehost 'dd of=$rem +otedir/back.tar.gz'")
The hard way would be starting tar in one process, the ssh/dd in another, and playing the IPC between them. Comparatively hard, for very little gain.

In effect, you'd have to reimplement the shell redirects in order to do it. It's easier to just use the shell's redirects, and fortunately, Perl makes that possible.

Replies are listed 'Best First'.
Re^2: system and pipes
by FourierXForm (Acolyte) on Jan 18, 2006 at 15:32 UTC
    Thank you very much. It worked perfectly!!