[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: