G'day dwslovedh,
I found your problem description very hard to follow.
Do you want something like this?
#!/usr/bin/env perl
use strict;
use warnings;
my $closest;
while (<DATA>) {
print;
if (/^MSG_ID_CELL_INFO_PRINT/) {
$closest = $_;
}
if (/^MSG_ID_CELL_CAMP_REQ/) {
print "\tClosest: $closest";
}
}
__DATA__
MSG_ID_CELL_INFO_PRINT sn=1 cellid=2;
MSG_ID_CAMP_RSP sn=2 cellid=2;
MSG_ID_CELL_INFO_PRINT sn=3 cellid=5;
MSG_ID_CELL_INFO_PRINT sn=5 cellid=2;
MSG_ID_CAMP_RSP sn=6 cellid=4;
MSG_ID_CAMP_RSP sn=8 cellid=2;
MSG_ID_CELL_INFO_PRINT sn=10 cellid=2;
MSG_ID_CELL_INFO_PRINT sn=11 cellid=5;
MSG_ID_CAMP_RSP sn=12 cellid=2;
MSG_ID_CAMP_RSP sn=14 cellid=3;
MSG_ID_CELL_CAMP_REQ sn=15 cellid=2;
MSG_ID_CELL_INFO_PRINT sn=16 cellid=2;
MSG_ID_CELL_INFO_PRINT sn=17 cellid=2;
MSG_ID_CELL_INFO_PRINT sn=18 cellid=2;
MSG_ID_CAMP_RSP sn=19 cellid=2;
MSG_ID_CELL_INFO_PRINT sn=20 cellid=5;
MSG_ID_CELL_INFO_PRINT sn=21 cellid=2;
MSG_ID_CAMP_RSP sn=22 cellid=4;
MSG_ID_CAMP_RSP sn=23 cellid=2;
MSG_ID_CELL_INFO_PRINT sn=24 cellid=2;
MSG_ID_CELL_CAMP_REQ sn=25 cellid=2;
Output:
$ pm_msg_block_extract.pl
MSG_ID_CELL_INFO_PRINT sn=1 cellid=2;
MSG_ID_CAMP_RSP sn=2 cellid=2;
MSG_ID_CELL_INFO_PRINT sn=3 cellid=5;
MSG_ID_CELL_INFO_PRINT sn=5 cellid=2;
MSG_ID_CAMP_RSP sn=6 cellid=4;
MSG_ID_CAMP_RSP sn=8 cellid=2;
MSG_ID_CELL_INFO_PRINT sn=10 cellid=2;
MSG_ID_CELL_INFO_PRINT sn=11 cellid=5;
MSG_ID_CAMP_RSP sn=12 cellid=2;
MSG_ID_CAMP_RSP sn=14 cellid=3;
MSG_ID_CELL_CAMP_REQ sn=15 cellid=2;
Closest: MSG_ID_CELL_INFO_PRINT sn=11 cellid=5;
MSG_ID_CELL_INFO_PRINT sn=16 cellid=2;
MSG_ID_CELL_INFO_PRINT sn=17 cellid=2;
MSG_ID_CELL_INFO_PRINT sn=18 cellid=2;
MSG_ID_CAMP_RSP sn=19 cellid=2;
MSG_ID_CELL_INFO_PRINT sn=20 cellid=5;
MSG_ID_CELL_INFO_PRINT sn=21 cellid=2;
MSG_ID_CAMP_RSP sn=22 cellid=4;
MSG_ID_CAMP_RSP sn=23 cellid=2;
MSG_ID_CELL_INFO_PRINT sn=24 cellid=2;
MSG_ID_CELL_CAMP_REQ sn=25 cellid=2;
Closest: MSG_ID_CELL_INFO_PRINT sn=24 cellid=2;