my $set_password = '/usr/bin/ssh ' . $master_host . " 'echo \Q$new_password\E | /usr/bin/passwd --stdin \Q$username\E'"; #### my $master_host = 'localhost'; my $username = 'foo'; my $new_password = 'a\'b$c"d|e'; print "pwd: ",$new_password; my $set_password = '/usr/bin/ssh ' . $master_host . " 'echo \Q$new_password\E | /usr/bin/passwd --stdin \Q$username\E'"; print "cmd: ",$set_password; system $set_password; __END__ pwd: a'b$c"d|e cmd: /usr/bin/ssh localhost 'echo a\'b\$c\"d\|e | /usr/bin/passwd --stdin foo' sh: Syntax error: Unterminated quoted string