Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

General Question on parsing a variable

by diamondsandperls (Beadle)
on Feb 06, 2013 at 20:51 UTC ( #1017502=perlquestion: print w/ replies, xml ) Need Help??
diamondsandperls has asked for the wisdom of the Perl Monks concerning the following question:

I have a variable that has many instances of stored data in it like the below..the beginning is storeId of each data entry the variable has and an ending of end I have many instances but only want to display the matches and the full data snapshot if criteria in the middle is matched then print the variable.

storeId = 111
a bunch of randomness
mysearch string criteria i want to match and only print this subset data instead of other instances
more randomness
end

Comment on General Question on parsing a variable
Re: General Question on parsing a variable
by moritz (Cardinal) on Feb 06, 2013 at 20:56 UTC
Re: General Question on parsing a variable
by Athanasius (Monsignor) on Feb 07, 2013 at 05:43 UTC

    You will find it easier to access the records if you read them into a suitable data structure first. In Perl, that usually means a hash:

    my %hash; $hash{$1} = $2 while $var =~ /storeID = (\d+)\s+(.*?)end/gs;

    Then you can search like this:

    my $criterion = ...; print "storeID = $_\n", $hash{$_} for grep { $hash{$_} =~ /$criterion/ + } keys %hash;

    Hope that helps,

    Athanasius <°(((><contra mundum Iustus alius egestas vitae, eros Piratica,

      http://scsys.co.uk:8002/228600

      I have many entries like the ones presented stored in a variable $var I only want to print the entries that have stockStatus = In stock or stockStatus = Limited Stock ignoring case though on the match so i know /i and a multiline match

        It seems each record now ends with a blank line, rather than the word “end” as in the OP. And each record is a collection of lines of the form key = value. So we add another loop, and create a hash in which each key is the storeId (as before), but each value is a (reference to a) nested hash of key/value pairs:

        Hope that helps,

        Athanasius <°(((><contra mundum Iustus alius egestas vitae, eros Piratica,

Re: General Question on parsing a variable (what)
by Anonymous Monk on Feb 07, 2013 at 08:27 UTC
    What is your question?

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://1017502]
Approved by Corion
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (6)
As of 2014-12-20 03:02 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (95 votes), past polls