Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Re^2: [Help]Build a tool/application using Perl

by tctoa (Novice)
on Oct 10, 2019 at 09:22 UTC ( [id://11107291]=note: print w/replies, xml ) Need Help??


in reply to Re: [Help]Build a tool/application using Perl
in thread [Help]Build a tool/application using Perl

Thank you daxim,

Look like this does not work.

use Net::SSH::Any qw(); my $ssh = Net::SSH::Any->new( '172.20.251.20', user => 'root', password => 'r3 +v3nue' ); my @tmp = $ssh->capture('ls -lrt'); print " @tmp";

Output:

 Use of uninitialized value $tmp[0] in join or string at test.pl line 7.

For the application, please be explained again. I try to give an simple example to easier: - Using Perl to have a script to detect an even number from a number input from keyboar - Create an application base on this script. This can be installed on Windowns. Then, when I wannna find I only need to run the app instead of executing perl "script.pl" I am sorry, I cannot use exactly works to describe.

Replies are listed 'Best First'.
Re^3: [Help]Build a tool/application using Perl
by daxim (Curate) on Oct 10, 2019 at 10:16 UTC
    I only need to run the app instead of executing perl "script.pl"
    That's called "compile to a standalone executable". See pp or staticperl or perlcc.

    It's easier to just associate the .pl file extension, so when you attempt to run a .pl file (for example by double-clicking in a file manager), it executes Perl automatically. When you use the Strawberry Perl installer, it does that association for you already.

Re^3: [Help]Build a tool/application using Perl
by Corion (Patriarch) on Oct 10, 2019 at 09:26 UTC

    Consider adding error handling, as documented in Net::SSH::Any:

    my @tmp = $ssh->capture('ls -lrt'); $ssh->error and die "'ls -lrt' failed: " . $ssh->error;

      Thanks Corion, It works fine on Linux platform, and not work on Windowns for SSH But everytime I issue $ssh->capture($cmd), I need to input password again. my code:

      use strict; use warnings; use Net::SSH::Any qw(); my $ssh = Net::SSH::Any->new( '172.21.71.197', user => 'root', password => 'r3 +v3nue' ); my @tmp = $ssh->capture('ls -lrt'); print "@tmp \n"; print "====================\n"; @tmp = $ssh->capture('date'); foreach (@tmp) { if ( $_ =~ /(\d+:\d+:\d+)/ ) { print "Time is $1"; last; } }
      Output:
      root@svr1087# perl test.pl root@172.21.71.197's password: total 88 -r-xr-xr-x. 1 root root 332 Apr 22 2015 patchC3iptablesCustom.sh -r-xr-xr-x. 1 root root 508 Apr 23 2015 jre1.6.sh dr-xr-xr-x. 2 root root 4096 Nov 8 2018 Adax -rw-r--r--. 1 root root 1807 Jul 19 17:55 preinstall.log -rw-r--r--. 1 root root 6782 Jul 19 17:58 install.log.syslog -rw-r--r--. 1 root root 25057 Jul 19 18:00 install.log -rw-------. 1 root root 10302 Jul 19 18:00 anaconda-ks.cfg -rw-r--r--. 1 root root 14788 Jul 19 18:03 postinstall.log -rw-r--r-- 1 root root 4 Jul 22 14:11 hung_task_timeout_secs~ ==================== root@172.21.71.197's password: Time is 05:06:39# + + + root@svr1087#

        I guess that the password you supply to Net::SSH::Any is wrong and the password you enter on the console is correct.

        Personally, I would use a dedicated keypair for that stuff and load it using ssh-agent.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others meditating upon the Monastery: (7)
As of 2024-03-29 12:58 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found