
finding urls: 

In the process of finding URLs without the help of LWP, one would have to do
something like this:
	$data =~ s/<([^>]*)>//;
	$in_brackets=$1;
	$key='a';
	$tag='href';
		if ($in_brackets =~ /^\s*$key\s+/i) { # if tag matches, try parms
		if ($in_brackets =~ /\s+$tag\s*=\s*"([^"]*)"/i) {
		$link=$1;
		$link =~ s/[\n\r]//g; # kill newlines,returns anywhere in url
		# process the URL here
	}
}


sub dir_walk { 

	my ($top, $code) = @_;
	my $DIR;
	$code->($top);
	if (-d $top) {
		my $file;
		unless (opendir $DIR, $top) {
		warn "Couldn’t open directory $top: $!; skipping.\n";
		return;
	}

	while ($file = readdir $DIR) {
		next if $file eq '.' || $file eq '..';
		dir_walk("$top/$file", $code);
	}
	}
}

abfangen – beispielsweise durch OR-Verknüpfung zweiter Pattern-Matching-
Ausdrücke:
if( ($_ =~ m/Madeleine Smith/) || ($_ =~ m/Madeline Smith/))
	Besser und einfacher ist es allerdings, beide alternativen Schreibweisen in
	einem Ausdruck anzugeben.
	Alternativen werden mit dem Metazeichen | angegeben. Im einfachsten
	Fall gibt man die Alternativen vollständig an.
if( $_ =~ m/Madeleine Smith|Madeline Smith/ )
	Wenn die alternativen Suchbegriffe größtenteils übereinstimmen, kann man
	sich Tipparbeit ersparen, indem man nur die wirklich unterschiedlichen Zeichenfolgen
	angibt – diese dann aber in runde Klammern setzt.
if( $_ =~ m/Madel(ei|i)ne/ )
	Das i kann man sogar auch noch streichen; Perl fasst eine leere Alternative
	automatisch als »kein Zeichen« auf.
if( $_ =~ m/Madel(e|)ine Smith/ )
	Selbstverständlich erlaubt Perl auch die Angabe mehrerer Alternativen. So
	könnte man im Beispiel neben der französischen und englischen auch noch
	die amerikanische Schreibweise (Madelain) abfangen:
if( $_ =~ m/Madel(eine|ine|ain) Smith/ )