Sponsored Content
Full Discussion: perl: Subroutine question
Top Forums Programming perl: Subroutine question Post 302539580 by Skrynesaver on Monday 18th of July 2011 06:59:57 AM
Old 07-18-2011
A quick demo of how to wrap the SSH::Expect object in a class of your own (seems to be what you were doing). You were missing the constructor so I added one, you called the LoginFirst routine with no object, whereas you depend on $self existing in it and you forgot to login Smilie
Code:
#!/usr/bin/perl

package  RunRemote;
use strict;
use warnings;

use Net::SSH::Expect;

sub new{
    my $proto=shift;
    my %args=@_;


    my $class = ref($proto) || $proto;
    my $self;
    $self->{ipaddr}    = defined $args{ipaddr}?$args{ipaddr}:"127.0.0.1";
    $self->{Password}  = $args{Password};
    $self->{UserName}  = defined $args{UserName}?$args{UserName}:$ENV{USER};
    bless ($self,$class);
    }

sub LoginFirst {
    my $self=shift;
    my $ssh = Net::SSH::Expect->new (
           host     => $self->{ipaddr},
           password => $self->{Password},
           user     => $self->{UserName},
           raw_pty  => 1,
           timeout  => 10
    );
  $ssh->login();
  return $ssh;
}

sub DeviceVersion {
     my $self=shift;
      my $newssh = $self->LoginFirst();
      #my @commands = ("enable","show version");
      my @ commands = @_;
      my $commands = join "\n", @commands;
      my $prout = $newssh->exec($commands);
      print " $prout\n";
}
1;
package Main;

my $connection=RunRemote->new(Password => "YOUR_PASSWORD");
my $response=$connection->DeviceVersion(("uname -a", "ls"));


Last edited by Skrynesaver; 07-18-2011 at 08:02 AM.. Reason: spelling and details
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Help with a perl subroutine regex

Hi, I can't get this script ot work and I wa wondering if anyone could help? I need to open a file and use a subroutine to search each line for a regular expression. If it matches then I need to return a match from the subroutine and print the result? Any help would be greatly... (11 Replies)
Discussion started by: jmd2004
11 Replies

2. Shell Programming and Scripting

calling perl subroutine from perl expect module

All, Is it possible to call a subroutine from the perl expect module after logging to a system that is within the same program. My situation is I need to run a logic inside a machine that I'm logging in using the expect module, the logic is also available in the same expect program. Thanks,... (5 Replies)
Discussion started by: arun_maffy
5 Replies

3. UNIX for Dummies Questions & Answers

Help with Subroutine

Okay I have a 1TB drive that is almost completely full with vids. I am in the process of converting them to mp4. I have two scripts right now. One is a shell script to convert them with Handbrake. The other is a script to get a sort of progress report. To make things easier to understand, I will... (0 Replies)
Discussion started by: Dalton63841
0 Replies

4. Shell Programming and Scripting

Why Perl Subroutine Passed In Variable is 1?

The following subroutine prints 1 instead of the content of the Equipment variable. Can someone tell me why? #!c:/perl/bin/perl.exe # use strict 'vars'; my $Equipments = "data/equips.txt"; unless (open(EQUIP_FH, "$Equipments")) { print "errors: $Equipments\n"; # This line prints... (1 Reply)
Discussion started by: tqlam
1 Replies

5. Shell Programming and Scripting

Calling perl subroutine from shell script (sh)

Hi, ive a perl script, where it has a subroutine clear() in it, and i've one shell script which runs in background, from that shell script i wanted to call subroutine which is in perl script, that's perl script is not module, just simple script. Eg: perl script <test> #!... (4 Replies)
Discussion started by: asarunkumar
4 Replies

6. Shell Programming and Scripting

Perl - pass file to subroutine

Hello All, I have 2 perl sub-routines. my $myDir = myDir_path; my $file; sub convert(){ system ("./$myConvertScript >> $myDir/$file_CONV" ); $file2 = $myDir/$file_CONV; } sub addDB(){ open(CONF, $config) or die "Cannot Open $config for reading. "; while(<CONF>){... (1 Reply)
Discussion started by: ad23
1 Replies

7. Shell Programming and Scripting

perl - return an object from subroutine - Net::LDAP

Hi all, I'm not even sure a person can do this in perl, seems like you should be able to though. Here's the error IO::Socket::INET: connect: Operation now in progress at server_search.pl line 256, <DATA> line 466. Here's the perl code... sub ldap_new{ $nl = Net::LDAP->new( "$_" ) or... (3 Replies)
Discussion started by: jtollefson
3 Replies

8. Shell Programming and Scripting

Problem saving return value of subroutine in perl

Hi all, I have this code #This program read the triplets from file named "data" into #an array of array. use strict; use warnings; use Data::Dumper; use Graph; use Graph::Subgraph; my @S; while (<>) { push @S, ; } print "-----TRIPLETS-------\n"; print Dumper \@S; #Make... (6 Replies)
Discussion started by: rushadrena
6 Replies

9. Shell Programming and Scripting

perl -Calling the Subroutine Only if the condition is met

Hello All, I am in the process of learning perl.I have a perl script and based on the arguments passed it would the appropriate subroutine that is defined in the script. Now, I need to check a value that is defined in the Environment variables and should call the subroutine only if the... (1 Reply)
Discussion started by: filter
1 Replies

10. Programming

Perl subroutine returning different values in HPUX

HI , I am running a program on hpux in perl. I am encountering a strange issue where when i print a variable in the sub which is returning it , it prints a different value but when i call it and store value in a variable it gives a different o/p. the sub is sub CheckConfigFilePattern ... (4 Replies)
Discussion started by: Jcpratap
4 Replies
Perl::Critic::Policy::Subroutines::ProhibitUnusedPrivateUseroContributed PerPerl::Critic::Policy::Subroutines::ProhibitUnusedPrivateSubroutines(3)

NAME
Perl::Critic::Policy::Subroutines::ProhibitUnusedPrivateSubroutines - Prevent unused private subroutines. AFFILIATION
This Policy is part of the core Perl::Critic distribution. DESCRIPTION
By convention Perl authors (like authors in many other languages) indicate private methods and variables by inserting a leading underscore before the identifier. This policy catches such subroutines which are not used in the file which declares them. This module defines a 'use' of a subroutine as a subroutine or method call to it (other than from inside the subroutine itself), a reference to it (i.e. "my $foo = &_foo"), a "goto" to it outside the subroutine itself (i.e. "goto &_foo"), or the use of the subroutine's name as an even-numbered argument to "use overload". CONFIGURATION
You can define what a private subroutine name looks like by specifying a regular expression for the "private_name_regex" option in your .perlcriticrc: [Subroutines::ProhibitUnusedPrivateSubroutines] private_name_regex = _(?!_)w+ The above example is a way of saying that subroutines that start with a double underscore are not considered to be private. (Perl::Critic, in its implementation, uses leading double underscores to indicate a distribution-private subroutine -- one that is allowed to be invoked by other Perl::Critic modules, but not by anything outside of Perl::Critic.) You can configure additional subroutines to accept by specifying them in a space-delimited list to the "allow" option: [Subroutines::ProhibitUnusedPrivateSubroutines] allow = _bar _baz These are added to the default list of exemptions from this policy. So the above allows "sub _bar {}" and "sub _baz {}", even if they are not referred to in the module that defines them. HISTORY
This policy is derived from Perl::Critic::Policy::Subroutines::ProtectPrivateSubs, which looks at the other side of the problem. BUGS
Does not forbid "sub Foo::_foo{}" because it does not know (and can not assume) what is in the "Foo" package. SEE ALSO
Perl::Critic::Policy::Subroutines::ProtectPrivateSubs. AUTHOR
Chris Dolan <cdolan@cpan.org> COPYRIGHT
Copyright (c) 2009-2011 Thomas R. Wyant, III. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of this license can be found in the LICENSE file included with this module. perl v5.16.3 2014-06-Perl::Critic::Policy::Subroutines::ProhibitUnusedPrivateSubroutines(3)
All times are GMT -4. The time now is 09:47 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy