[Perl] look_down retourneert maar 1 waarde

Pagina: 1
Acties:

  • Hmail
  • Registratie: April 2003
  • Laatst online: 08-04 13:17

Hmail

Doet ook maar wat.

Topicstarter
Ik heb een html pagina waarin een lijst met adressen en websites van bibliotheken staan. Iedere bibliotheek begint met <div class = "maplabel", en eindigt met </div>. Nu wil ik graag alle bibliotheken (inclusief de html code die er om heen staat) eruit strippen. Dus schreef ik deze code:

Perl:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
my $browser = LWP::UserAgent->new;
open LOGFILE, ">>biebwel.txt";
my $finalurl = "http://localhost/bieb/wel.HTML";
my $result = $browser->get($finalurl);
my $root = HTML::TreeBuilder->new_from_content($result->content);
my @placelink = new HTML::ElementRaw;
@placelink = $root->look_down( _tag => 'div', 'class' => 'maplabel')->as_HTML;
print @placelink;
if(@placelink)
{
    my $finallink = join("", @placelink);
    print $finalurl."\n";
    print LOGFILE $finallink;
    print LOGFILE "\n";
}
close LOGFILE;

Voor alle duidelijkheid: in wel.HTML staat dus bijvoorbeeld ergens <div class = "maplabel">(adresgegevens_bibliotheek1)</div><div class = "maplabel">(adresgegevens_bibliotheek2)</div>, etc. Ik wil dus alleen die code, zonder de rest van de HTML pagina.
Maar, wat ik ook probeer, ik krijg alleen iedere keer de adresgegevens van de eerste bibliotheek! Dat zou niet zo moeten zijn wat ik begreep van diverse perl sites, omdat ik nu @placelink gebruik in plaats van $placelink...
Weet iemand wat ik fout doe?

It might sound as if I have no clue what I'm doing, but I actually have a vague idea.


  • MBV
  • Registratie: Februari 2002
  • Laatst online: 09-04 18:58

MBV

ik heb perl alweer bijna een jaar niet meer gebruikt, maar er staat me iets van bij dat je een andere functie dan print nodig had om een array helemaal uit te printen. vergelijkbaar met print_r() in PHP. Wat gebeurt er als je dat doet op placelink?
Zoieso snap ik niet waarom je regel 6 nodig hebt. Je kent toch iets toe op regel 7, dan hoef je toch niet eerst een nieuw object aan te maken? Zou wel eens de oorzaak van de fout kunnen zijn, aangezien dat 1 nieuw object is, en geen array van objecten. Haal die regel dus maar weg :)