[
Thread Prev][
Thread Next] >
Date Index
>
Thread Index
Re: LWP::Simple Verständnisfrage
Joerg Meltzer -
Tue Dec 11 21:26:06 2007
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hallo Stefan,
Du verwendest unnötigerweise ein Zeilensplitting.
Ausserdem solltest du Minimum Matches .*? anstatt greedy .* verwenden.
#!/usr/bin/perl -w
use strict;
use LWP::Simple;
my $url = 'http://www.debian.org/security/2007/';
my @meldung;
my @ct = get($url) =~ m/<tt>\[(.*?)\]<\/tt> <strong><a
href=".\/(dsa-.*?)">/gms;
while ( @ct > 1) {
eintrag_erstellen( shift(@ct), shift(@ct));
}
print @meldung;
sub eintrag_erstellen {
my ( $datum, $link ) = @_;
my $meldung = $link . ' vom ' . $datum . "\n";
push( @meldung, $meldung );
}
__END__
Stefan Bauer schrieb:
> Hallo Liste,
>
> #!/usr/bin/perl -w
> use strict;
> use LWP::Simple;
> my $url = 'http://www.debian.org/security/2007/';
> my @meldung;
> my @webseite = get($url);
> foreach my $line (@webseite) {
> if ($line =~ m/<tt>\[(.*)\]<\/tt> <strong><a href=".\/(dsa-.*)">/) {
> eintrag_erstellen($1, $2);
> }
> }
> print @meldung;
>
> sub eintrag_erstellen {
> my ($datum, $link) = @_;
> my $meldung = $link . ' vom ' . $datum . "\n";
> push (@meldung, $meldung);
> }
>
>
> Leider enthällt @meldung nur genau einen Treffer, die regex sollte
> vielmehr in der $url finden. Was hab ich vergessen? *grübel* Ich seh
> gerade den Wald vor lauter Bäumen nicht.
>
> Gruß
>
>
- --
Jörg Meltzer * joerg.meltzer@tngtech.com * +49-176-22664106
TNG Technology Consulting GmbH, Betastr. 13a, 85774 Unterföhring
Geschäftsführer: Henrik Klagges, Gerhard Müller, Christoph Stock
Amtsgericht München, HRB 135082
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFHXvJBgijrw/Y0B3MRAu6nAJ9XGyeepZZHNivbf6ZyDMwUwb2CaACeKCHv
JHcqnu7WAvWgNVkSX12NFJM=
=17T6
-----END PGP SIGNATURE-----
Next:
- Re: LWP::Simple Verständnisfrage, (continued)