in reply to perl -e in ssh
I couldn't tell from the OP what sort of args the remote one-liner script was expecting for @ARGV. If including those within the back-ticks for the ssh command is complicated, I would switch from using back-ticks to opening a pipeline file handle, so that I could submit the args as separate list elements (not to be interpreted by the remote shell):$cmd = `ssh server perl my-remote-one-liner`;
Note that the curlies establish scope for the "local" use of slurp mode, and for the shell file handle (using "my" within the block limits the scope for the variable, whether or not you "use strict;" -- but you do use strict, right?{ my @ssh_cmd = qw/ssh server perl my-remote-one-liner arg1 arg2/; open( my $ssh, "-|", @ssh_cmd ) or die "ssh failed: $!"; local $/; $cmd = <$ssh>; }
|
|---|