==== Mensaskript ==== Schreiben wir nun ein etwas praktischeres Script: #!/usr/bin/perl use v5.12; use strict; use warnings; use utf8; use open qw( :std :locale ); use HTML::TreeBuilder (); use WWW::Mechanize (); my $URL = 'http://www.werkswelt.de/?id=sued'; my @color = ("\e[31m","\e[33m","\e[32m"); my $color_reset = "\e[m"; sub get_food { my $idx = shift; my ($html) = @_; foreach my $line (split /\n/, $html) { next unless $line =~ /^Speiseplan
/; $line =~ m{

(.+?)

} or die; say "$color[$idx]$1$color_reset"; while ($line =~ m{(Essen \d+)
(.+?)
}g) { my $food = $1; my $name = $2; $name =~ s{.+?}{}g; $name =~ s{\([\d\w,]+\)}{}g; $name =~ s{\s+}{ }g; say " $color[$idx]$food:$color_reset $name"; } } } my $mech = WWW::Mechanize->new; $mech->get($URL); get_food(0,$mech->content); for (my $i = 0; $i < 2; $i++) { my $next = $mech->current_form->find_input(undef, 'submit', 3); $mech->click_button(input => $next); get_food($i+1, $mech->content); }
Dieses //Perl//-Skript lädt den Mensaspeiseplan aus dem Internet und filtert mit einem //regulären Ausdruck// (wie //grep//!) den aktuellen Plan heraus. Sinnvollerweise sollte das Script als ''mensa'' im Verzeichnis ''~/bin'' gespeichert werden und so wie oben ausführbar gemacht werden (Rechte!). Nun kannst du jeden Tag mittels ''mensa'' den Mensa-Speiseplan anschauen.