in reply to Re^6: Need help with a nested IF statement
in thread Need help with a nested IF statement

The second comment simply says that /...[\d].../ can be written as /...\d.../

Replies are listed 'Best First'.
Re^8: Need help with a nested IF statement
by MikeDexter (Sexton) on Nov 03, 2009 at 15:41 UTC

    I am having a very weird issue with the Linux portion of my script. Using the same method as I did on the Unix side, my output is empty.

    my ($ip, $bcast, $mask) = /\binet addr:([\d.]+)\sBcast:([\d.]+)\sMask: +([\d.]+)/

    So I tried a different method

    my ($ip, $bcast, $mask) = /\binet addr:([\d.]+)\s.+:([\d.]+)\s.+:([\d. +]+)/

    This actually finds the correct Interface, IP and Broadcast, but an irronious Netmask

    cccadm@ccasec1::perl: ./ipandos.pl Hello, your operating system is: linux Interface 1 has the IP Address of 10.241.37.199 Netmask: 808 Broadcast: 255.255.255.0

    The ifconfig on Linux is slightly different. Here is what it looks like for one interface....

    eth1 Link encap:Ethernet HWaddr 00:19:B9:EB:80:8F inet addr:10.241.37.199 Bcast:10.241.37.255 Mask:255.255.2 +55.0 inet6 addr: 3ffe:80c0:22c:225:219:b9ff:feeb:808f/64 Scope:Gl +obal inet6 addr: fe80::219:b9ff:feeb:808f/64 Scope:Link
      There are two spaces before Bcast.

        UPDATE *** I figured it out. The \s.+ was being greedy. I changed it to \s.+? to say take a little as possible and it corrected the issue. Now my output is exaclty what I want.