in reply to Parsing and pushing

This should get you started. I'm not familiar with SNMP trap format so there may be edge cases, and it could likely be written better.

use warnings; use strict; my $data = '%CATD_I_060, SNMPTRAP: -c public 954 165.148.211.199 wblvh +001.telkom.co.za 6 10 00:00:00 16 OID: 1.3.6.1.4.1.954.1.1.1.1.1.7557 +342 .iso.org.dod.internet.private.enterprises.954.1.1.1.1.1.7557342 V +ALUE: I OID: 1.3.6.1.4.1.954.1.1.1.1.2.7557342 .iso.org.dod.internet. +private.enterprises.954.1.1.1.1.2.7557342 VALUE: 7557342 OID: 1.3 +.6.1.4.1.954.1.1.1.1.3.7557342 .iso.org.dod.internet.private.enterpri +ses.954.1.1.1.1.3.7557342 VALUE: tcenshpat1 OID: 1.3.6.1.4. +1.954.1.1.1.1.4.7557342 .iso.org.dod.internet.private.enterprises.954 +.1.1.1.1.4.7557342 VALUE: TEST_FILE_NAME OID: 1.3.6.1 +.4.1.954.1.1.1.1.5.7557342 .iso.org.dod.internet.private.enterprises. +954.1.1.1.1.5.7557342 VALUE: 3030303036 OID: 1.3.6.1.4.1.954.1.1.1.1. +6.7557342 .iso.org.dod.internet.private.enterprises.954.1.1.1.1.6.755 +7342 VALUE: V OID: 1.3.6.1.4.1.954.1.1.1.1.7.7557342 .iso.org.dod.int +ernet.private.enterprises.954.1.1.1.1.7.7557342 VALUE: Not_Noticed + OID: 1.3.6.1.4.1.954.1.1.1.1.8.7557342 .iso.org.dod.internet.privat +e.enterprises.954.1.1.1.1.8.7557342 VALUE: 32303036303931303233353531 +32 OID: 1.3.6.1.4.1.954.1.1.1.1.9.7557342 .iso.org.dod.internet.priva +te.enterprises.954.1.1.1.1.9.7557342 VALUE: OID: 1.3.6.1.4.1 +.954.1.1.1.1.10.7557342 .iso.org.dod.internet.private.enterprises.954 +.1.1.1.1.10.7557342 VALUE: OID: 1.3.6.1.4.1.954.1.1.1. +1.11.7557342 .iso.org.dod.internet.private.enterprises.954.1.1.1.1.11 +.7557342 VALUE: CTMERRJOBNAMECTMERRTest job for unicenter OID: 1.3.6. +1.4.1.954.1.1.1.1.12.7557342 .iso.org.dod.internet.private.enterprise +s.954.1.1.1.1.12.7557342 VALUE: OID: 1.3.6.1.4.1.954 +.1.1.1.1.13.7557342 .iso.org.dod.internet.private.enterprises.954.1.1 +.1.1.13.7557342 VALUE: TEST_GROUP OID: 1.3.6.1.4.1.954.1.1. +1.1.14.7557342 .iso.org.dod.internet.private.enterprises.954.1.1.1.1. +14.7557342 VALUE: TEST_APPLICATION OID: 1.3.6.1.4.1.954.1.1.1.1.1 +5.7557342 .iso.org.dod.internet.private.enterprises.954.1.1.1.1.15.75 +57342 VALUE: TEST_JOB_NAME + OID: 1.3.6.1.4.1.954.1.1.1.1.16.7557342 .iso.org.dod.interne +t.private.enterprises.954.1.1.1.1.16.7557342 VALUE: tcenshpat1'; my @matches = $data =~ m/VALUE: (.+?) OID/g; print "$_\n" for @matches;

Output:

I 7557342 tcenshpat1 TEST_FILE_NAME 3030303036 V Not_Noticed 3230303630393130323335353132 CTMERRJOBNAMECTMERRTest job for unicenter TEST_GROUP TEST_APPLICATION TEST_JOB_NAME

I used an array to hold the matches (I hope this qualifies as a "separate variable" in your OP). See perlre for information on regular expressions. You can get the command line parameters from @ARGV (see perlvar).

Replies are listed 'Best First'.
Re^2: Parsing and pushing
by Anonymous Monk on Sep 19, 2006 at 15:42 UTC
    Thanks so much!!!!!!

    It's working, I had the @ARGV stuff but not much else.

    Thanks again!