Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

Re: Use of uninitialized value in subroutine entry at C:/Perl/lib/HTML/TreeBuilder.pm line 108.

by Athanasius (Abbot)
on Dec 26, 2012 at 06:59 UTC ( #1010324=note: print w/ replies, xml ) Need Help??


in reply to Use of uninitialized value in subroutine entry at C:/Perl/lib/HTML/TreeBuilder.p m line 108.

Hello kanthsri, and welcome to the Monastery!

I re-formatted your code as follows:

#! perl use Modern::Perl; use LWP::Simple; use URI::Escape; use HTML::TreeBuilder; use Try::Tiny; my $look_for = "perl"; my $contents = get "http://www.amazon.com/s/ref=nb_sb_noss?url=search- +alias%3Dstripbooks&field-keywords=" . uri_escape($look_for); my $html = HTML::TreeBuilder->new_from_content($contents); for my $item ($html->look_down(id => qr/result_\d+/)) { # $item->dump; # find out structure of HTML my $author = try { $item->look_down(class => 'ptBrand')->as_trimme +d_text }; print "$author\n"; } $html->delete;

and ran it with the following result:

16:54 >perl 452_SoPW.pl by Randal L. Schwartz, brian d foy and Tom Phoenix by Tom Christiansen, brian d foy, Larry Wall and Jon Orwant Ph.D. by Tom Christiansen and Nathan Torkington by Randal L. Schwartz, brian d foy and Tom Phoenix by Johan Vromans by Joseph N. Hall, Joshua A. McAdams and brian d foy by Randal Schwartz, Tom Phoenix and brian d foy by David N. Blank-Edelman by brian d foy by Curtis Poe by Damian Conway by Paul E. Hoffman 16:56 >

What output do you get? In what way is the code “not executing” in your system?

Update: Just realised that the title answers my question! What version of HTML::TreeBuilder are you running? Mine is v5.01. What is line 108 in your version of this module?

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


Comment on Re: Use of uninitialized value in subroutine entry at C:/Perl/lib/HTML/TreeBuilder.pm line 108.
Select or Download Code
Re^2: Use of uninitialized value in subroutine entry at C:/Perl/lib/HTML/TreeBuilder.p m line 108.
by kanthsri (Initiate) on Dec 26, 2012 at 07:25 UTC
    v5.16.1 this is my version of perl and in treebuillder.pm the unitialised value is $new->parse($whunk);
      this is the version of treebuilder v5.02

        Line 108 of HTML::TreeBuilder is a call to HTML::TreeBuilder::parse, which (according to lines 1967–8 of the source code) is inherited from HTML::Parser. Parts of that module — including the parse method — are implemented in C, which is compiled for your local machine when you install the module.

        So, it seems there are two possibilities:

        1. The call to get is failing, as suggested by Anonymous Monk, below. So, the first thing to do is to print out the variable $contents immediately following the call to get but before the call to new_from_content, to verify that get is working correctly.

        2. If it is, then check the installation of HTML::Parser on the machine where the code is failing. Perhaps try re-installing this module.

        Hope that helps,

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

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (5)
As of 2015-07-04 19:44 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (60 votes), past polls