On Jan 21, 7:50 am, moonb...@gmail.com (Erez Schatz) wrote:
> On 20 January 2011 15:38, Eyal B. <ewinst...@gmail.com> wrote:
>
>
>
> > I'm writing a scripts that check the TTL of the ping and found the OS.
> > According the TTL - the script should let me know which OS it is :
> > Linux/ Windows or Unix (Hash table)
>
> > I'm getting an error on the line where I should use the TTL variable -
> > and take the right value from the hash (%list) :Use of uninitialized
> > value in print at D:\system\perl\os-rec\os-rec5_.pl line 24
> > , <HANDLE> line 3.
>
> > Any idea ?
> >                        if("$line" =~ "TTL=")
> >                                        {
> >                                $line =~ s/.*TTL=//;
> >                                print "TTL = $line\n";
> >                                print $list{"$line"} ;
> >                                # print "Machine $machine_IP is 
> > $list{$line}" ;
> >                                last;                                   }
>
> Assuming a specific line is made of nothing but TTL=, then $line =~
> s/.*TTL=//; will erase the line, leaving you with an empty
> (uninitialized) $line variable.
>
> A way to debug this will be to include a print $line just before the
> substitution, so you could find what is happening in each stage of the
> iteration.
>
> --
> Erez
>
> La perfection soit atteinte non quand il n'ya plus rien à ajouter,
> mais quand il n'ya plus rien à retrancher.

Hi Erez
print "TTL = $line\n";  Does give me the right value ! (I.e TTL = 125)
Also print $list{125} ; return the right value
But this is not working : print $list{$line} ;
What can happen for the variable ?


--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


Reply via email to