my $action = "\'( cd $path && tar cf - . )|( cd $targ && tar xBf - )\'"; $cmds[0] = "`su $user -c \"ksh -c $action \"`"; foreach my $cmd (@cmds) { eval { print "Please enter $user password\n"; open( CMD, "$cmd |" ) or die "Error: $!\n"; }; if ($@) { die "Error: could not copy files: $dest: $@\n"; } while ( ) { print "COMMAND: $_\n"; } } # end foreach