First off, thanks and ++ to respected Monks chromatic and merlyn for such speedy responses.

But I'm kinda slow sometimes, and often ride the "short bus" to the Monastery   ;^)   So... I re-read ovid's excellent Before You Post ..., then condensed my script down to a relevant minimum, in hopes of some charitable Monk showing me how to insert the necessary control structure(s) properly.

A quick(?) recap for anyone who just tuned in...   cisconconf.pl is the script, it uses Net::Telnet::Cisco to connect to a Cisco router or switch and do stuff.   ciscoconf.log records the results of the script.   And ciscoconf.in is to be a list of routers (one router name/ip addr per line) for the script to connect to.   I also want to be able to call the script with a space-delimited list of routers, like so: ciscoconf.pl router1 router2 router3, included at the command-line which whould over-ride any existing .in file.

I half understand unless, <>, while, or push individually but not how to actually plug them into my code.
    cheers,
    ybiC

#!/usr/bin/perl -w # ciscoconf.pl use strict; use Net::Telnet::Cisco; my $pass = ''; # Cisco vty password my $timeout = '60'; # seconds of no response ti +ll Net::Telnet::Cisco gives up waiting my $infile = "/dir/subdir/ciscoconf.in" # one-per-line text-file lis +ting of Cisco devices to connect to my $logfile = "/dir/subdir/ciscoconf.log" # logfile of script results print "starting Cisco device sessions\n" # print to console, not log open (IN, "$infile") or die "Error opening $infile: $!\n" open (LOG,">$logfile") or die "Error opening $logfile: $!\n" # repeat these actions for each Cisco device at command prompt (or els +e in ciscoconf.in) # control struct(s) begin here? print LOG "####################################################### +######\n" my $cs=Net::Telnet::Cisco->new(Host=>IN, timeout=>$timeout,); $cs->login('',$pass); # vty login $cs->errmode(sub{print LOG @_, "\n"}); # error handler: print $cs- +>errmsg, "\n" print $cs->last_prompt, "\n" # print Cisco device prompt +to console print LOG $cs->last_prompt, "\n" # print Cisco device prompt +to log $cs->close; # exit Cisco session print LOG "####################################################### +######\n" # control struct(s) end here? # end actions for each Cisco device close (IN) or die "Error closng $infile: $!\n" close (LOG) or die "Error closing $logfile: $!\n" print "finished Cisco device sessions\n" # print to console, not log # END

In reply to Re: ...input from(command-line <i>or</i> text file)list (Question Clarified) by ybiC
in thread script input from (command-linetext file) list by ybiC

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.