use strict; use warnings; use Test::More tests => 1; my $out = filter (); my $want = qq#GREPME>>,xxxxx,BP5,2017-11-27_22:36:57,xxxxx,BP5,ADVANCED_COMPRESSION,TABLE_COMPRESSION,101189,count,DBA_TABLES,SAPABW,/BIC/D1002562,,"ENABLED","OLTP",\n#; is ($out, $want); sub filter { my @save = (); my $keep = ''; foreach (@save){ $_ = "" unless ($_ =~ m/"ENABLED","OLTP",/ && $_ =~ m/^GREP/ ); $_ = "" if ($_ =~m/SYSMAN/|| m/SYS/); if ($_) { $keep = $_; last; } } return $keep; } __DATA__ GREPME>>,xxxxx,BP5,2017-11-27_22:36:57,xxxxx,BP5,ADVANCED_COMPRESSION,TABLE_COMPRESSION,101189,count,DBA_TABLES,SYS,/BIC/D1002561,,"ENABLED","OLTP", GREPME>>,xxxxx,BP5,2017-11-27_22:36:57,xxxxx,BP5,ADVANCED_COMPRESSION,TABLE_COMPRESSION,101189,count,DBA_TABLES,SAPABW,/BIC/D1002562,,"ENABLED","OLTP", GREPME>>,xxxxx,BP5,2017-11- 27_22:36:57,xxxxx,BP5,ADVANCED_COMPRESSION,TABLE_COMPRESSION,101189,count,DBA_TABLES,SAPABW,/BIC/D1002566,,"ENABLED","OLTP", GREPME>>,xxxxx,BP5,2017-11-27_22:36:57,xxxxx,BP5,ADVANCED_COMPRESSION,TABLE_COMPRESSION,101189,count,DBA_TABLES,SYS,/BIC/D100256P,,"ENABLED","OLTP",