use strict; use File::Basename; my ($i,@requestname,@values,@requestname1,%ss,$value,@value1,$vv); for my $path ( grep -f, ) { open(FILE,"$path") or die $!; while(){ if($_ =~/xml$/ && $_=~/Start ------/) { my ($vs1,$vs2,$vs3,$vs4,$vs5)=split(/:/,$_); push(@requestname,"$vs5"); } if($_ =~/ProcessRequest/){ my ($v1,$v2,$v3,$v4,$v5,$v6,$v7)=split(/\s+/,$_); push(@values,"$v4\t"); } } push(@values,"MM"); close (FILE); } push(@requestname1,grep {!$ss{$_}++} @requestname); $value=join('',@values); push(@value1,split(/MM/,$value)); foreach $vv(0 .. scalar @requestname1){ $requestname1[$vv]=~s/\s+$//g; print $requestname1[$vv]; print "\t$value1[$vv]\n"; }