The exact output is as follows :

[friz@dhcp9-52 friz]$ ./test.perl 
[friz@dhcp9-52 friz]$  telnet       password              
admin---------------


That's why I figured there was a CR in there... :)

On Wed, 2003-01-08 at 14:57, Dan Muey wrote:
> What does 
> print $line;
> 
> Do?
> 
> -----Original Message-----
> From: Jason Frisvold [mailto:[EMAIL PROTECTED]] 
> Sent: Wednesday, January 08, 2003 2:00 PM
> To: Dan Muey
> Cc: Perl Beginners List
> Subject: RE: "hidden" characters in an input stream
> 
> 
> I had thought of that before, tho ...  Here's the ourput using the backslash :
> 
> --->>>> sec log sho<<<<---
> UserName               Application  Authentication Method  Profile
> Name<<<<---
> ---------------------  -----------  --------------------- 
> --------------------<<<<---
> myuser                 console      password               admin<<<<---
> myuser                 http         password               admin<<<<---
> myuser                 telnet       password               admin<<<<---
> 
> On Wed, 2003-01-08 at 14:50, Dan Muey wrote:
> > I'll bet it has to do with the <<'s right after the var name
> > 
> > How about this output ::
> >   print "--->>>>$line\<<<<---\n";
> > Or this
> > print "--->>>> $line <<<<---\n"
> > 
> > You may try
> > $line =~ s/\n|\r//g;
> > 
> > Dan
> > 
> > -----Original Message-----
> > From: Jason Frisvold [mailto:[EMAIL PROTECTED]]
> > Sent: Wednesday, January 08, 2003 1:54 PM
> > To: Dan Muey
> > Cc: Perl Beginners List
> > Subject: RE: "hidden" characters in an input stream
> > 
> > 
> > Output is as follows :  (note: test.perl is just a small test program 
> > to do just the telnet and getline ...  I don't really name my programs 
> > test.perl ...  :)
> > 
> > [friz@dhcp9-52 friz]$ ./test.perl | more
> > 
> > ---- start line ---- 
> >   sec log sho
> > ---- end line ---- 
> > 
> > ---- start line ---- 
> > UserName               Application  Authentication Method  Profile Name 
> > ---- end line ----
> > 
> > ---- start line ----
> > ---------------------  -----------  --------------------- 
> > -------------------- 
> > ---- end line ---- 
> > 
> > ---- start line ---- 
> > myuser                 console      password               admin 
> > ---- end line ----
> > 
> > ---- start line ---- 
> > myuser                 http         password               admin 
> > ---- end line ----
> > 
> > ---- start line ---- 
> > myuser                 telnet       password               admin 
> > ---- end line ----
> > 
> > 
> > It appears that the line shows up correctly here which is why I think 
> > there's a CR somewhere...
> > 
> > 
> > On Wed, 2003-01-08 at 14:42, Dan Muey wrote:
> > > Perhaps that data contains '<<<<<' in it already?
> > > 
> > > Try 
> > >   print "--->>>>$line\<<<<---\n";
> > > Just in case it's seeing it as a varaible named 'line<..' That could
> > > cause all sorts of screwy ness
> > > 
> > > For kicks what does it ouput if you do :
> > > 
> > >  print "\n---- start line ---- \n $line \n---- end line ---- \n";
> > > 
> > > 
> > > Dan
> > > 
> > > -----Original Message-----
> > > From: Jason Frisvold [mailto:[EMAIL PROTECTED]]
> > > Sent: Wednesday, January 08, 2003 1:39 PM
> > > To: Perl Beginners List
> > > Subject: "hidden" characters in an input stream
> > > 
> > > 
> > > Hi all,
> > > 
> > >   I'm using the Net::Telnet module to automate some of the more 
> > > menial
> > > tasks I have to deal with every so often.  Part of the task requires 
> > > parsing a stream of data from the device I'm telnetting to (A Marconi 
> > > ASX-200 to be exact) ...  I've successfully set up the telnet, logged 
> > > in, and executed the proper commands.  Now, however, I need to 
> > > retrieve data from the device.  I can submit the command and use 
> > > getline() to retrieve lines, one at a time, and parse it.  However, 
> > > there are "hidden" characters here and I don't know how to determine 
> > > what they are.
> > > 
> > > Here is a quick snippet of the code :
> > > 
> > > $Telnet->print("sec log sho");
> > > while (my $line = $Telnet->getline(Timeout => 5,)) {
> > >         chomp $line;
> > >         print "--->>>>$line<<<<---\n";
> > > }
> > > 
> > > This should simple print out each line with the arrows before and
> > > after the line.  However, upon output, I get something like the 
> > > following :
> > > 
> > > --->>>> sec log sho<<<<---
> > > UserName               Application  Authentication Method  Profile
> > > Name<<<<---
> > > ---------------------  -----------  ---------------------
> > > --------------------<<<<---
> > > myuser                 console      password               admin<<<<---
> > > myuser                 http         password               admin<<<<---
> > > myuser                 telnet       password               admin<<<<---
> > > 
> > > 
> > > I'm guessing this is a carriage return character?  I believe that's
> > > the one that causes the output to start at the beginning of the line.
> > > 
> > > Does anyone know how I can properly remove these characters so I can
> > > parse this information?
> > > 
> > > In addition, is using the timeout on getline the "proper" way to
> > > determine that the input stream has stopped?
> > > 
> > > Thanks,
-- 
---------------------------
Jason H. Frisvold
Backbone Engineer
Penteledata Engineering
[EMAIL PROTECTED]
RedHat Certified - RHCE # 807302349405893
---------------------------
"Something mysterious is formed, born in the silent void. Waiting alone
and unmoving, it is at once still and yet in constant motion. It is the
source of all programs. I do not know its name, so I will call it the
Tao of Programming."

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to