[TriLUG] YAPQ (yet another Perl question)

Greg Brown gwbrown1 at gmail.com
Fri Mar 20 14:57:41 EDT 2009


D'oh!!!

Works like a champ.

Many thanks and blessings to you, sir!

On Fri, Mar 20, 2009 at 2:47 PM, Don Jerman <djerman at pobox.com> wrote:

> Try saying:
>
> foreach $readline (@read){
>
> instead.  You're reparsing the array by enclosing it in <>.
>
> On Fri, Mar 20, 2009 at 2:26 PM, Greg Brown <gwbrown1 at gmail.com> wrote:
> > This should be very simple.  Very.  Extraordinarily.   But I'm missing
> > something because it's just not working.
> >
> > I've got a Perl script that grabs info from expect.pm.  I get a variable
> > back called $before.  It contains the data I want.  I copy $before to
> $read
> > then split $read on the newline.  For test purposes I print each of the
> > lines of (now) @read and this is where things get screwy.
> >
> > Instead of splitting at the newline, which I clearly told it to do, it
> seems
> > to be splitting on whitespace.  Running the output threw od shows nothing
> > hidden that would be tripping the script.
> >
> > details:
> >
> > This is what comes back from the expect and is written to $before:
> >
> > I SNTP Poll Seconds:      300
> > I HTTPS port:             443
> > I SSH port:               22
> > I Syslog:                 off
> >  Compression:            on (Enhanced Mode)
> > I Packing:                off
> > I Acceleration:           off
> > I Adaptive Response:      on
> >
> > This is now my script is processing it:
> >
> > SNTP
> > Poll
> > Seconds:
> > 300
> > I
> > HTTPS
> > port:
> > 443
> > I
> > SSH
> > port:
> > 22
> > I
> > Syslog:
> > off
> > Compression:
> > on
> > (Enhanced
> > Mode)
> >
> > yet this is how it looks in OD:
> >
> > 0037440   :                           3   0   0  \r  \n   I       H   T
> > 0037460   T   P   S       p   o   r   t   :
> > 0037500                           4   4   3  \r  \n   I       S   S   H
> > 0037520       p   o   r   t   :
> > 0037540                       2   2  \r  \n   I       S   y   s   l   o
> > 0037560   g   :
> > 0037600               o   f   f  \r  \n           C   o   m   p   r   e
> > 0037620   s   s   i   o   n   :
> > 0037640           o   n       (   E   n   h   a   n   c   e   d       M
> > 0037660   o   d   e   )  \r  \n   I       P   a   c   k   i   n   g   :
> > 0037700
> > 0037720   o   f   f  \r  \n   I       A   c   c   e   l   e   r   a   t
> > 0037740   i   o   n   :                                               o
> > 0037760   f   f  \r  \n   I       A   d   a   p   t   i   v   e       R
> > 0040000   e   s   p   o   n   s   e   :                           o   n
> > 0040020  \r  \n  \r  \n   /   O   l   d   S   i   t   e   D   e   f   a
> > 0040040   u   l   t   /   C   o   r   k   /   B   a   c   k   u   p   /
> > 0040060   1   3   5   -   1   0   0   0   4   4   7   4  \n
> >
> >
> > I'm specifically interested in the Compression: line but I want the
> entire
> > line.
> >
> >                        # now expect back a bunch of stuff along with the
> > "#" prompt
> >                        ( $which, $why, $match, $before, $after ) =
> > $ssh->expect(90,'#');
> >
> >                        # this is a perl thing, copy $before to a new
> > variable $read
> >                        $read=$before;
> >                        if ($read =~ m/Compression:/) {
> >
> >                                # print DEBUG "$hostname compression\n";
> >                                # print DEBUG1 "$hostname $before\n";
> >
> >                        # step through each line
> >                        @read=split(/[\n\r\l]+/,$read);
> >
> >                        # start a foreach loop
> >                        foreach $readLine (<@read>) {
> >
> >                                print DEBUG "$readLine\n";
> >
> >                        } # end the foreach loop
> > --
> > TriLUG mailing list        :
> http://www.trilug.org/mailman/listinfo/trilug
> > TriLUG FAQ  : http://www.trilug.org/wiki/Frequently_Asked_Questions
> >
> --
> TriLUG mailing list        : http://www.trilug.org/mailman/listinfo/trilug
> TriLUG FAQ  : http://www.trilug.org/wiki/Frequently_Asked_Questions
>



More information about the TriLUG mailing list