In der Vorlesung haben Sie ja schon etwas über referentielle Integrität gehört. Das bedeutet, dass jeder Fremdschlüssel auch in der referenzierten Tabelle vorkommt und dort Primärschlüssel ist. Zum Beispiel bei den beiden Tabellen Course und Studies ist die ,,courseid`` bei Studies ein Fremdschlüssel und referenziert den zugehörigen Datensatz in Course, den es deshalb geben muss. Schreiben Sie ein Perl-Skript, das für diese beiden kleinen Unix-Datenbanken überprüft, ob die referentielle Integrität nicht verletzt ist, d.h. zu jeder courseid in Studies ein entsprechender Datensatz in Course existiert. Dieses Skript soll melden, für welche courseid's diese Integrität verletzt ist.
Beispiel:
thales$ refint.pl course ID ``informatik'' not found! course ID ``matheba'' not found! course ID ``wima1'' not found! thales$
Beachten Sie, dass die beiden Tabellen in der ersten Zeile jeweils die Spaltennamen enthalten!
Schreiben Sie ein kleines Übersetzerprogramm, das eine Web-Seite von
der (als einziges Kommandozeilen-Argument) angegebenen URL einliest und
diese Wort für Wort vom Englischen ins
Deutsche übersetzt. Auf dem Netz gibt's ein
Englisch-Deutsch-Wörterbuch.
Dieses sollen Sie unverändert in Ihrem Programm verwenden.
Nehmen Sie nur solche Wörterbuch-Einträge, die aus einem Wort bestehen!
Ihr Programm soll im Stande sein, HTML-Seiten zu übersetzen. Dabei
darf natürlich alles in Kommentaren (also zwischen <!--
und
-->
) und in Tags (zwischen <
und >
, wobei kein Kommentar)
nicht übersetzt werden.
Tipp: LWP::Simple::get($url)
,,zieht`` die Datei von der
angegebenen URL und liefert ihren Inhalt als String zurück. Der Modifikator
?
am Ende eines Quantifikators (z.B. .*?
) bewirkt
bei regulären Ausdrücken ein Matching minimaler Länge.
Beispiel:
thales$ translate.pl Usage: translate.pl <URL> thales$ translate.pl http://www.june29.com/IDP/IDPfiles.html <html><head><title>The Internet Dictionary Project: Download the Dictionary Files</title></head> <body bgcolor="#FFFFFF"> <img src="graphics/IDP1.gif" alt="The Internet Dictionary Project"><br> <img src="graphics/IDPfiles.gif" alt="Download the Dictionary Files"><p> The files welches sind produced mit die IDP und die vielerlei volunteers wer haben visited dieser pages sind erreichbar hier zu anyone zu unterladen. Please read die [...] thales$
Ständig werden die Rechner des Mathe-Netzes von überall auf der Welt angegriffen. Manchmal sogar extrem heftig von einzelnen IP-Adressen. Damit wir nicht mühsam uns durch die Log-Dateien quälen müssen, gibt es ein Perl-Skript, dass die Log-Dateien parst und einen Bericht über die Angriffe erzeugt. Eine Zeile aus der Log-Datei sieht vereinfacht wie folgt aus:
123.35.54.7:1253 -> 134.60.166.1:21(Von Angreifer:Port Verbindung zu Opfer:Port.)
Beispiel:
thales$ attack.pl 126.34.51.43 attacks: 6 targets: 134.60.66.77 123.35.54.7 attacks: 3 targets: 134.60.22.1, 134.60.166.1 134.60.66.5 attacks: 1 targets: 134.60.166.1 thales$
Tipp: Bei sort können Sie eine eigene Vergleichs-Prozedur angeben.
Viel Erfolg!