in reply to Re^4: Find the array element as per the pattern.
in thread Find the array element as per the pattern.

All the array elements are in a single array:).

Here's your original code. I cleaned it up a little, but davido showed you the best way to do it. Run this, and you'll see why.

#!/usr/bin/perl use strict; my @all_metrics = <DATA>; foreach my $each_metrics_grp (@all_metrics) { $each_metrics_grp =~ s/RTRV(.*)//gi; my (@sub_metrics) = split( /'\n'/, $each_metrics_grp, 0 ); my ($matched_true) = grep( /"(([A-Z0-9]+)\-(\d+)),/sig, @sub_metri +cs ); print "$1\n"; print "@sub_metrics"; if ( $each_metrics_grp =~ m/\"(([A-Z0-9]+)\-(\d+)),/gis ) { push my @all_head, $1; print "matched:[$1]\n"; } else { print "not matched\n"; } } __DATA__ 'RTRV-PM-ALL:ADEL-OM3500-1:ALL:1898::,0-UP,NEND,,1-DAY,02-11,,;| ADEL- +OM3500-1 09-02-12 03:46:54 M 1898 COMPLD "OC192-11,OC192:CVS,0,COMPL,NEND,RCV,1-DAY,02-1 +1,00-00,1" "OC192-11,OC192:ESS,0,COMPL,NEND,RCV,1-DAY,02-11,00-00,1" "OC192-11,OC192:PSCW,0,COMPL,NEND,RCV,1-DAY,02-11,00-00,1" "OC192-11,OC192:PSCP,0,COMPL,NEND,RCV,1-DAY,02-11,00-00,1" "OC192-11,OC192:PSD,0,COMPL,NEND,RCV,1-DAY,02-11,00-00,1" "OC192-12,OC192:CVS,0,COMPL,NEND,RCV,1-DAY,02-11,00-00,1" "OC192-12,OC192:PSCW,0,COMPL,NEND,RCV,1-DAY,02-11,00-00,1" >'; 'RTRV-PM-ALL:ADEL-OM3500-1:ALL:1898::,0-UP,NEND,,1-DAY,02-11,,;| ADEL- +OM3500-1 09-02-12 03:46:56 M 1898 COMPLD "OC192-12,OC192:PSCP,0,COMPL,NEND,RCV, +1- DAY,02-11,00-00,1" "OC192-12,OC192:PSD,0,COMPL,NEND,RCV,1-DAY,02-11,00 +-00,1" "OC192-11-28,STS3C:CVP,0,COMPL,NEND,RCV,1-DAY,02-11,00-00,1" "OC192-11-28,STS3C:UASP,0,COMPL,NEND,RCV,1-DAY,02-11,00-00,1" "OC192-11-28,STS3C:FCP,0,COMPL,NEND,RCV,1-DAY,02-11,00-00,1" "OC192-11-145,STS3C:CVP,0,COMPL,NEND,RCV,1-DAY,02-11,00-00,1" "OC192-11-145,STS3C:ESP,0,COMPL,NEND,RCV,1-DAY,02-11,00-00,1" "OC192-11-145,STS3C:SESP,0,COMPL,NEND,RCV,1-DAY,02-11,00-00,1" ;';