in reply to Re^3: need to remove the extra line in regular expression
in thread need to remove the extra line in regular expression

Thanks for the help
I have added small code which will check the condition first, if the l +ine contain Link encap and if it found then get the ethernet address +and ip address other wise skip the test. and here is my changes. open FILE,"config.txt" or die "cannot open file : $!"; my $interface; # declare the variable while(<FILE>) { if (/Link encap/){ print "yes"; # if there are non-space symbols on the start of the line, # consider it interface name $interface = $1 if /^([\S]+)/; # $1 means first matched () group of s +ymbols # a group of numeric symbols or dots after "inet addr:" # is considered an IP-address print "$interface => $1\n" if /inet addr:([0-9.]+)/; # use /inet6? addr: ?([0-9a-f.]+)/ if you want to match IPv6-addresse +s } }
But when I run the script it gives me the below output but not giving +the expected out. "Yes"

Replies are listed 'Best First'.
Re^5: need to remove the extra line in regular expression
by aitap (Curate) on Aug 23, 2012 at 07:21 UTC
    /inet addr:([0-9.]+)/ never matches on the line where /Link encap/ does, so the address is not matched, and print is not reached. You can use your check only on the interface name matching, not on the whole loop.
    Sorry if my advice was wrong.
      I am not getting where to check on interface name matching, can you please help me.
        Check it on the same line where the $interface gets assigned. Remove the print statement from your check (move it outside the if(...){...} block).
        Sorry if my advice was wrong.