Zugriff auf Array of Hashes in sub

06/05/2008 - 15:39 von Holger Pollmann | Report spam
Hallo,

ich bin relativ neu in Perl und verstehe darum gerade vermutlich einfach
nicht so recht, was ich hier mache.

gegeben sei ungefàhr folgendes:



use strict;
use LWP::Simple;
use HTML::TokeParser;



sub findtoken
{
my ($stream, @params) = @_;
my $found = 0;

while(my $cur_token = $stream->get_token()){
# alla Argumente durchgehen
my $param_hash;

foreach $param_hash ( @params ) {
my $key;

# alle Elemente des Hashes durchgehen
for $key (keys %$param_hash){
my $value = $param_hash->{$key};

# ...
}
}
# Wenn wir hierherkommenm, haben wir einen Match
$found = $cur_token;
last;
}
return $found;
}



my $response = get 'http://www.example.com';
my $stream = HTML::TokeParser->new( \$response );

my %desc = (tag => 'span', class => 'HeadlineXL');
my @params = (%desc);
my $token = findtoken($stream, @params);


Das ganze gibt einen
Can't use string ("class") as a HASH ref while "strict refs" in use
für die Zeile

for $key (keys %$param_hash){

Und nun kapiere ich nicht ganz, was mir Perl sagen will. Da das beim
ersten Versuch des Durchgangs der Schleife passiert, kann ich an
$param_hash auch noch nichts geàndert haben...

Wo ist mein Fehler?

( ROT-13 if you want to email me directly: uvuc@ervzjrexre.qr )
"Sie tragen Trauer? Der Untergang der DDR?" - "Nein, Leni Riefenstahl.
Der Führer hat sie zu sich genommen." -- Abschiedsshow Scheibenwischer,
02.10.2003
 

Lesen sie die antworten

#1 Frank Seitz
06/05/2008 - 15:47 | Warnen spam
Holger Pollmann wrote:

my @params = (%desc);


^
\%desc

Wo ist mein Fehler?



Grüße
Frank
Dipl.-Inform. Frank Seitz; http://www.fseitz.de/
Anwendungen für Ihr Internet und Intranet
Tel: 04103/180301; Fax: -02; Industriestr. 31, 22880 Wedel

Ähnliche fragen