#!/usr/bin/perl
use warnings;
use strict;
use HTML::Parser;
my (@Staedte, @Koord1, @Koord2); # globale Variablen fuer Parser-Ergebnisse
sub parse_start {
if ($_[0] eq 'img') {
return unless exists $_[1]->{alt}; # alt-Attribute vorhanden?
push @Staedte, $_[1]->{alt};
} elsif ($_[0] eq 'input') {
if ($_[1]->{name} eq 'k1') {
push @Koord1, $_[1]->{value};
} elsif ($_[1]->{name} eq 'k2') {
push @Koord2, $_[1]->{value};
}
}
}
my $p = HTML::Parser->new ( api_version => 3,
start_h => [ # Handler fuer Start-Tags
\&parse_start,
'tag, attr', # Uebergib Tag und Attribute
],
);
$p->report_tags (qw(img input)); # nur diese Tags beachten
$p->parse_file(*DATA);
# Ausgabe der Ergebnisse
for (0..$#Staedte) {
print "$Staedte[$_]\n===> ($Koord1[$_], $Koord2[$_])\n";
}
_ _DATA_ _
Mittlere Koordinate:.
Mittlere Koordinate:.