Thread Frage zu Warnung "Variable will not stay shared" (4 answers)
Opened by pktm at 2011-01-13 10:48

pktm
 2011-01-13 10:48
#144645 #144645
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Hallo!

Wir haben im Wiki von Renee einen Beitrag über HTML::Parser.

Wenn ich den Code aus Beispiel 1 so abändere:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/usr/bin/perl

use strict;
use warnings;
use HTML::Parser;
use Data::Dumper qw/Dumper/;

sub parse_links {
my $text = shift or die('missing text');

my @links = ();

my $p = HTML::Parser->new();
$p->handler(start => \&start_handler,"tagname,attr,self");
$p->parse($text);

foreach my $link(@links){
print "Linktext: ",$link->[1],"\tURL: ",$link->[0],"\n";
}

sub start_handler{
return if(shift ne 'a');
my ($class) = shift->{href};
my $self = shift;
my $text;
$self->handler(text => sub{$text = shift;},"dtext");
$self->handler(end => sub{push(@links,[$class,$text]) if(shift eq 'a')},"tagname");
}
} # /parse_links


dann kommt bei mir die Warnung "Variable "@links" will not stay shared at /path/file.pl line 27."

Wie muss ich push() aufrufen, damit das nicht mehr passiert?

Grüße, pktm
http://www.intergastro-service.de (mein erstes CMS :) )

View full thread Frage zu Warnung "Variable will not stay shared"