in reply to How can I store two values with the same key in a hash?
#!/usr/bin/perl use strict; use Data::Dumper; my $msg= "INVITE sip:paka@36.212.176.92 SIP/2.0 To:samir <sip:paka@36.212.176.92> Via: SIP/2.0/udp 36.212.176.90:5060;branch=z9hG4bk_Vn Via: SIP/2.0/udp 36.212.176.66:5060;branch=z9hG4bk_oo From: sanjay<sip:sanjay@36.212.176.90> Call-ID: _Vn8TZTk2H@36.212.176.90 CSeq: 215 INVITE Max-Forwards: 70 Contact: sanjay<sip:sanjay@36.212.176.90:5060>"; my @fields = split /\n/, $msg; my %config = ( URI => { regex => qr/^INVITE\ssip:/}, To => { regex => '^To:'}, From => { regex => '^From:'}, Via => { regex => '^Via:'}, Via1 => { regex => '^Via:'}, Call_ID => { regex => '^Call-ID:'}, CSeq => { regex => '^CSeq:'}, MaxForwards => { regex => '^Max-Forwards:'}, Contact => { regex => '^Contact:'}, ); my %cnf; foreach (@fields) { chomp; foreach my $c (sort keys %config) { if (/$config{$c}{regex}/) { next if exists $cnf{$c}; $cnf{$c} = $_; last; } } } print Dumper \%cnf;
|
|---|