The error is telling you exactly what the problem is, your final terminator
is missing (because you've quoted it). To save you all that backwhacking,
consider using qq:
$ssh->cmd( qq{mysqldump -uroot -pnew-password -t -T/var/lib/mysql free
ExData --fields-enclosed-by=" --fields-terminated-by=|} );
Read 'perldoc perlop' for more information on qq.
Depending on how Net::SSH::Perl handles the argument to cmd, you may still
need to quote the double quote and pipe symbols:
$ssh->cmd( qq{mysqldump -uroot -pnew-password -t -T/var/lib/mysql free
ExData --fields-enclosed-by='"' --fields-terminated-by='|'} );
Cheers,
Michael
--
Michael Brader
Senior Software Engineer - Billing
Techops - Softdev
Internode
http://www.internode.on.net/