in reply to Re^2: how to modify foreach in thread how to modify foreach
if you want to give me a mail, i can send you some data to check.
That's not how we do things here. :-)
Have a read of both SSCCE and How to ask better questions using Test::More and sample data. If you can provide your code and a small set of data along those lines I've no doubt that we'll be able to see where you are going wrong.
Re^4: how to modify foreach
by OliverR (Initiate) on Jun 08, 2018 at 09:58 UTC
|
oki, here is a set of DATA :
in a file named xxxoptions.csv i have this :
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",
Here, line 2 and 3 match with my criteria (because others are SYS)
In a second file named YYYoptions.csv i have this :
GREPME>>,yyyyy,IP5,2017-11-27_22:40:08,yyyyy,IP5,ADVANCED_COMPRESSION,TABLE_COMPRESSION,80440,count,DBA_TABLES,SAPISU,KWNPHRE,,"ENABLED","OLTP",
GREPME>>,yyyyy,IP5,2017-11-27_22:40:08,yyyyy,IP5,ADVANCED_COMPRESSION,TABLE_COMPRESSION,80440,count,DBA_TABLES,SAPISU,KWNPHREPR,,"ENABLED","OLTP",
GREPME>>,yyyyy,IP5,2017-11-27_22:40:08,yyyyy,IP5,ADVANCED_COMPRESSION,TABLE_COMPRESSION,80440,count,DBA_TABLES,SYSTEM,KWNPHRI,,"ENABLED","OLTP",
Here, lines 1 and 2 match with my criteria
so , the result expected would be oltp.txt with header:
User script,Serveur Name,Instance Name,Date of script,Serveur Name2,Instance Name2,ADVANCED_COMPRESSION~HEADER,TABLE_COMPRESSION~HEADER,2,count,DATA_DICTIONARY_VIEW,TABLE_OWNER,TABLE_NAME,PARTITION_NAME,COMPRESSION,COMPRESS_FOR
and then my lines (1 per file, the first one who match with criteria)
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>>,yyyyy,IP5,2017-11-27_22:40:08,yyyyy,IP5,ADVANCED_COMPRESSION,TABLE_COMPRESSION,80440,count,DBA_TABLES,SAPISU,KWNPHRE,,"ENABLED","OLTP",
thank again
OliverR
| [reply] |
|
Since, despite my prodding, you have not provided an SSCCE here is one which uses Test::More and sample data, demonstrating that the filter works.
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,ADVANCE
+D_COMPRESSION,TABLE_COMPRESSION,101189,count,DBA_TABLES,SAPABW,/BIC/D
+1002562,,"ENABLED","OLTP",\n#;
is ($out, $want);
sub filter {
my @save = (<DATA>);
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,,"ENAB
+LED","OLTP",
GREPME>>,xxxxx,BP5,2017-11- 27_22:36:57,xxxxx,BP5,ADVANCED_COMPRESSION
+,TABLE_COMPRESSION,101189,count,DBA_TABLES,SAPABW,/BIC/D1002566,,"ENA
+BLED","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",
There are clearly things to be improved here - there's no point matching against both /SYS/ and /SYSMAN/ for example - but the concept of an SSCCE and the value of it should be informative.
Please remember to put your data as well as your code within <code> tags when posting here.
| [reply] [d/l] [select] |
|
|