For Programmers: Free Programming Magazines  


Home > Archive > PERL Beginners > August 2007 > dereferencing hashes









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

Author dereferencing hashes
Hunter Barrington

2007-08-29, 9:59 pm

ok so im using HTML::TreeBuilder to pull some data off of a website and
parse it. If I'm understanding this right each tag of the tree is put
inside the tree as a hash reference with hash references inside of it
for each tag thats below it. Like:
<html><body><p> = $root_hash_ref->$body_hash_ref->$p_hash_ref

regardless if i understand the module or not, how do i dereference the
data i need? in other words, i need to be able to pull data out of the
hashes (i know where its kept) without iterating over it. i tried my
$piece = ${row}{3} where 3 would be they key number and that didnt work.
perlref was only so helpful and i only got some of the basics. any thoughts?
Rob Dixon

2007-08-29, 9:59 pm

Hunter Barrington wrote:
>
> ok so im using HTML::TreeBuilder to pull some data off of a website
> and parse it. If I'm understanding this right each tag of the tree is
> put inside the tree as a hash reference with hash references inside
> of it for each tag thats below it. Like: <html><body><p> =
> $root_hash_ref->$body_hash_ref->$p_hash_ref


No, not at all. It's a linked structure of HTML::Element objects which
can be navigated by using object method calls. Take a look at

perldoc HTML::Element

for an idea of the sort of things you can do.

> regardless if i understand the module or not, how do i dereference
> the data i need? in other words, i need to be able to pull data out
> of the hashes (i know where its kept) without iterating over it. i
> tried my $piece = ${row}{3} where 3 would be they key number and that
> didnt work. perlref was only so helpful and i only got some of the
> basics. any thoughts?


You can use the address() method if the HTML element you need is always
in the same place in the HTML document, but this is a little risky if
the document can change at all. Or you can find it by context using
look_down(). If you give us an example of what it is you're trying to
extract then we can help you better,

Rob
Hunter Barrington

2007-08-29, 9:59 pm

thnx for the reply.

code @ http://barringtonweb.com/code.txt

trying to pull data out of the td elements without iterating over them

will look at html::element perldoc

thanks a lot i think thats what i was missing,
-Hunter

Rob Dixon wrote:
> Hunter Barrington wrote:
>
> No, not at all. It's a linked structure of HTML::Element objects which
> can be navigated by using object method calls. Take a look at
>
> perldoc HTML::Element
>
> for an idea of the sort of things you can do.
>
>
> You can use the address() method if the HTML element you need is always
> in the same place in the HTML document, but this is a little risky if
> the document can change at all. Or you can find it by context using
> look_down(). If you give us an example of what it is you're trying to
> extract then we can help you better,
>
> Rob
>

Sponsored Links







Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive

Copyright 2008 codecomments.com