Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

Re^3: how to modify foreach

by hippo (Bishop)
on Jun 08, 2018 at 09:34 UTC ( [id://1216177]=note: print w/replies, xml ) Need Help??


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.

Replies are listed 'Best First'.
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

      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.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1216177]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others admiring the Monastery: (6)
As of 2024-04-23 21:37 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found