in reply to Pattern Matching

This smells like homework to me. Especially the bit that goes:
GROUP ASSIGNMENT DETAILS
I've never seen anything in an snmp return string that looks like that.

Anyway, regardless of whether it's homework or not, you're not going to learn much (anything) simply by asking someone else to write some code for you.

Have a got at it yourself. Have a read through perlre and perlretut. Show that you've made at least some effort to solve this problem for yourself, and you're more likely to get some help here.

Cheers,
Darren :)

Replies are listed 'Best First'.
Re^2: Pattern Matching
by Anonymous Monk on Apr 14, 2006 at 04:32 UTC
    hmm. I think you took it wrong. It is not an assignment. It is output of Ehealth discovery. Might be you are unaware of ehealth. I am not perl gurur so thats why i need help if you can not help just done make fun of others the GROUP ASSIGNMENT DETAILS part is as follow GROUP ASSIGNMENT DETAILS ======================== Group names were specified in the Element Filter or the Save
    To Groups options. The Report Only option was specified so group assignments were not performed.
    TIPS
    ==== Discover Key (nms Id):
    This is created by discover to uniquely identify an element.
    eHealth uses the discover key to help resolve changes in your network with your poller configuration.
    Duplicate Element Names:
    These elements are newly discovered and have the same names as existing elements. Discover did not update the existing elements because their attributes did not match. Instead, eHealth made these element names unique.
      I think you took it wrong. It is not an assignment.
      Well, perhaps I did. But that doesn't alter the fact that you haven't demonstrated that you've made any effort to solve this particular problem for yourself. Perlmonks is not a free code writing service.

      Anyway, here are a few pointers to get you started.

      You say that the data is in a file, so the first thing you need to do is open the file for reading. This is generally done like so:

      open DATA, "<", $myfile or die "Could not open $myfile:$!\n";
      Next you want to decide what sort of data structure you're going to use. Let's say you just want to gather the device names into a list. Therefore, you declare your list variable:
      my @devices;
      Now you'll need to iterate through the file, line by line, extracting the data you want and adding it to the list. You'll need three things:
      • a loop.
      • a pattern match, and
      • a push statement.
      You might write something like this:
      while (<DATA>) { chomp; next if !/^cgw01/; push @devices, $_; }
      You may need to refine the pattern match, depending on how variable your data is. The above assumes that all the device names begin with the string "cgw01".

      Make sure you use strict and use warnings, and make use of print statements and Data::Dumper::Simple for debugging.

      Cheers,
      Darren :)

        For newbies, I avoid mentioning open unless the problem dictates. I prefer to give them something like this:
        while (<>) { do something here }
        Let Perl do the complicated stuff.

        -QM
        --
        Quantum Mechanics: The dreams stuff is made of

      A reply falls below the community's threshold of quality. You may see it by logging in.