http://qs1969.pair.com?node_id=674647

$dancarlson has asked for the wisdom of the Perl Monks concerning the following question:

Oh wise and learned Perl Monks,

I am a novice perl user. I do more reading Perl than writing it and I'm having a fair bit of trouble creating a multi line search. I have a big log file filled with colourful and exciting SIP Logging. I want to find the CallIDs from each SIP Call. The three lines I want to match looks like this:

From: "Bungalo Bill" <sip:5555555555@11.11.11.111:22>;tag=SD223sd2-31233dss^M
To: <sip:6666666666@11.11.11.111:22>^M
Call-ID: SD0e1af02-4d8d3eesdfsdfsd44w5f6fdb77814d-h6030fd^M

This file is filled with all kinds of stuff. The Data I have is 'Bungalo Bill' ($NAME) and '6666666666' ($INBOUND_NUMBER) and what I want to find is that long beautiful CallID (SD0e1af02-4d8d3eesdfsdfsd44w5f6fdb77814d-h6030fd).

Now, I thought that I could do something like the following, but that is not working for me (at all). I'm not sure if this is because of the Unix CRs(^M) or just my incredibly poor perl skills.

$_=~/From.*$NAME.$INBOUND_NUMBER.*Call-ID:\w(.*)/s

Any suggestions would be greatly appreciated.