Beefy Boxes and Bandwidth Generously Provided by pair Networks
Come for the quick hacks, stay for the epiphanies.
 
PerlMonks  

Error while executing a command using Net::SSH::Expect

by lamp (Chaplain)
on Sep 09, 2008 at 07:58 UTC ( [id://709997]=perlquestion: print w/replies, xml ) Need Help??

lamp has asked for the wisdom of the Perl Monks concerning the following question:

Dear monks,

I am writing a script to check the installed perl modules and its versions in different remote systems. I am using 'Net::SSH::Expect' module for executing the command in remote systems. The following is the sample code.
#!/usr/bin/perl use Net::SSH::Expect; my $host = "testserver"; my $user = "test"; my $password = "pass"; my $ssh = Net::SSH::Expect->new ( host => $host, password=> $password, user => $user, raw_pty => 1, timeout => 10 ); my $login_output = $ssh->login(); my $cmd = qq(perl -e 'use ExtUtils::Installed; my ($inst) = ExtUtils:: +Installed->new(); my (@modules) = $inst->modules(); map { print $_ . +":" . $inst->version($_) ."\n"; }@modules;'); my $res = $ssh->exec($cmd); print($res); $ssh->close();
While executing the command, i'm getting the following error
>new(); my () = ->modules(); map { print . ":" . ->version() ." > "; };' Can't declare stub in "my" at -e line 1, near ") =" syntax error at -e line 1, near "= ->modules" syntax error at -e line 1, near ". ->version" syntax error at -e line 2, near "};" (Might be a runaway multi-line "" string starting on line 1) Execution of -e aborted due to compilation errors.
If I execute the command manually in remote server using SSH client, i'm getting the output.

Can someone throw some light on this.

-lamp

Replies are listed 'Best First'.
Re: Error while executing a command using Net::SSH::Expect
by Corion (Patriarch) on Sep 09, 2008 at 08:01 UTC

    Debug your program by printing $cmd before you send it for execution to the remote machine. See perlop on how double-quotes (and qq{}) work.

    If you had use strict; at the top of your program, Perl would have told you what goes wrong. If you had -w on the Perl command line or use warnings; at the top of your program, Perl would have given you hints at what goes wrong.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://709997]
Approved by Corion
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others admiring the Monastery: (4)
As of 2024-04-20 00:37 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found