Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

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

by Athanasius (Archbishop)
on Dec 26, 2012 at 06:59 UTC ( [id://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

Replies are listed 'Best First'.
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
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1010324]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others musing on the Monastery: (7)
As of 2024-04-23 18:49 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found