http://www.perlmonks.org?node_id=1123513


in reply to How do I get expect.pm to ignore special characters?

Do the passwords have the same special characters on the different machines. Some "special" characters are treated differently inside double quotes. To avoid that use single quotes.

$ssh->send( 'rootpasswordwithspecialcharacters' . "\n" );

The single quotes are used to protect that characters in the root password. The newline is then concatenated to the end, since \n depends on being in double quotes.