in reply to Re^4: array with s///g command
in thread array with s///g command
#!/usr/bin/perl -w use strict; use diagnostics; my $ncb = $/; my $cbn = $"; $/ = "\n\n"; $" = "\n"; my $yahoo = shift @ARGV; open FH, "$yahoo" or die "can't open $!"; my $callid; my $sipm; my %data1 = (); my $count = 0; my $size = 15; while (<FH>) { chomp; if (m/###/) { next; } unless (m{(?:^\bSIP\/2\.0 \b)?(\d\d\d|^[A-Z]{3,6} ).*(Call-ID: +[\S]{25,80})[^ ]+: .*}s) { $count++; next; } ($sipm,$callid) = ($1,$2); push (@{$data1{$callid}}, $sipm); } close FH; $/ = $ncb; $" = $cbn; print "There were $count which could not detect\n"; HANA: foreach $callid (sort keys %data1) { my @fields = @{$data1{$callid}}; my @fields1 = @fields; @fields1 = map { s/\s//g; $_ } @fields1; if ("$size" > ($#fields1 + 1)) { next HANA; } else { print @fields1; } print "\n"; }
|
|---|