Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

Re^3: If exists (hash)

by Anonymous Monk
on Oct 06, 2011 at 14:52 UTC ( #929996=note: print w/ replies, xml ) Need Help??


in reply to Re^2: If exists (hash)
in thread If exists (hash)

My basic question is how to print a hash key that will only be there in some records. I thought the "if exists" might work but it clearly doesn't.

Um, your code fragment is incomplete, it does not demonstrate "if exist" not working

See Access Hashes of Hashes etc. and Re^2: Unique value count in hash not working properly

$ perl -Mstrict -e " my $foo = { 1, 1 }; exists $foo->{1}{2} " Can't use string ("1") as a HASH ref while "strict refs" in use at -e +line 1.


Comment on Re^3: If exists (hash)
Download Code
Re^4: If exists (hash)
by packetstormer (Monk) on Oct 06, 2011 at 15:09 UTC
    Thanks for replying. I did read those threads (in fact I started one of them) but still being relatively new to perl I am having trouble. I notice the following:

    My code will retrieve XML results from a web page. The value below will always have data:

    $xml->{result}->{covers}

    Mostly it will be just a folder path. However, sometimes it could be more than one path in which case the following is returned:

    'result' => { 'covers' => {'1' => {'content' => '/mypath/nevr/9smith/' }, '2' => {'content' => '/mypath/nevr/9-dssmith/' }

    So when the XML appears I should look for $result->{covers}->{1}->{content}
    but this is where the error appears. I'm gonna read up some more and maybe I'll figure it out.
    Thanks for the replies though.
      I guess you want to check 'HASH' eq ref $xml->{result}{covers}
        Excellent! Thanks. I didn't know anything about "ref" but that is exactly what I needed. I can now do a check to see if its a value of a hashref and then do as I need from there.
        Thanks very much! Working perfect now!

      . I'm gonna read up some more and maybe I'll figure it out.

      Or you could simply use Data::Diver and be done with it

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (8)
As of 2014-07-11 04:46 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    When choosing user names for websites, I prefer to use:








    Results (218 votes), past polls