| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Navigation |
Seiten-InhaltProgrammieren mit Perl-ModulenModule für Perl unter WindowsZusätzliche Module installieren...lange habe ich danach gesucht - aber dann ging alles ganz einfach (Perl-Installation von ActiveState (s.o.)): Erstmal nur in Kürze: benutze PPM (ein von der Kommandozeile aufrufbares Programm (Perl-Script), welches eine sehr einfache Installation der benötigten Module erlaubt)
So war es dann auf einmal auch kein Problem mehr GD und/oder mySQL Module zu installieren - sogar die ActiveState-HTML-Hilfe-Dateien wurden erweitert. Wer weiß, daß es ein bestimmtes Modul gibt - dies aber mit der Suche von ppm nicht finden kann, dem ist vielleicht hier geholfen?! Interessante und nützliche Perl-Module... die man leider noch extra installieren muss, da sie in der Standard-Installation nicht direkt dabei sind. Mit dem unter Windows mitinstallierten Tool PPM ist es aber kein Problem, Module nachzurüsten (s.o.).
[inst. = mit 'x' markiert, wenn dieses Modul in der Standardinstallation vorhanden ist. Sonst kann es z.B. über PPM nachinstalliert werden.] PPM - und Module nicht von ActiveStateAls ich vor einiger Zeit mein System auf Perl 5.8.0 umstellte gab es ein Problem: Einige Module werden von ActiveState noch nicht für die Verwendung der neuen Version angeboten. Also habe ich geguckt, ob ich unter Windows "mal fix" die benötigten Module selber compilieren könnte. Es stellte sich heraus, daß (zumindest bei dem Modul GD) es für mich zu viel Aufwand bedeuten würde - und nicht sicher sei, daß die vermutlich stundenlange Arbeit von Erfolg gekrönt sein würde. Ich resignierte - und fand dann aber doch noch einen Beitrag in den Google-Groups, der eine Anleitung gab, dieses Problem zu umgehen. PPM bitet auch die Möglichkeit, auf andere Repositories (hier in dem Sinne von Modul-Sammlungen) zuzugreifen. Wenn nun von einer anderen Quelle dieses Modul zu finden ist. Weitere Suche brachte mich zu "winnipeg" - diese Quelle stellt auch eine Version von GD zur Verfügung, die mit dem neuen Perl 5.8.0 arbeitet. Hier die dazu ntwendigen Befehle (und deren Bedeutung), die ich dafür ausführen mußte, um GD mit Perl 5.8.0 unter Windows zu installieren:
Perl und XMLDa man in Perl Konfigurationsdateinen sehr schön mit XML-Dateien realisieren kann, habe ich mich auch mal mit XML ein wenig intensiver beschäftigt. Ich habe lange recherchieren müssen, um alle Dinge zu "erfahren", die ich meinte zu brauchen... damit es Ihnen vielleicht etwas leichter gemacht wird habe ich hier versucht, die wichtigsten Punkte zusammenzufassen. Die Bearbeitung von XML-Dateien mit Perl-Scripten ist eine ziemlich einfache Sache: es gibt dafür das Modul XML::Simple. Dies stellt eine Funktion XMLin zur verfügung, welche die XML-Datei in eine verzweigte Array-/Hash-Tabelle verwandelt, auf die man in Perl dann relativ einfach zugreifen kann. Um vorzugeben, ob Ansammlungen von XML-Elementen zu einem Array zusammengefasst werden sollen oder lieber als Hash dargestellt werden gibt es diverse Optionen (forcearray etc.) - deren Bedeutung ist am besten in der Hilfe zu perl (perldoc oder der HTML-Hilfe (s.u.)) nachzulesen. Um die Daten ggf. später wieder zu schreiben, gibt es die Funktion XMLout: diese erzeugt ein Skalar, in dem die XML-Elemente aufgeführt sind. Indem man dieses Skalar in eine Datei schreibt, wird die XML-Datei wieder zurückgeschrieben. SOAP - Google-Suche mit Google-APIsGoogle stellt einen interessanten Service zur Verfügung. Man kann über die SOAP-Schnittstelle Anfragen an Google stellen und bekommt eine schicke Datenstruktur zurückgegeben, die man dann als ein komplexes Perl-Array-Hash-Referenzen-Gebilde weiterbe- und verarbeiten kann. So ist es nicht mehr erforderlich, die von der eigentlichen Google-Suchmaschine zurückgegebene HTML-Seite der Suchergebnisse via RegEx zu interpretieren (und bei Umformatierung von Google wieder neu anzufangen), sondern man greift einfach auf die Rückgabewerte zurück. Auf der Site von Google http://www.google.com/apis/index.html kann man sich weitere Informationen holen - es gibt dort auch eine FAQ zu dem Service. Es ist erforderlich, sich einen Schlüssel von Google zuteilen zu lassen. Dieser wird via Mail zugesendet. Nun muss man sich mit dem SOAP-Modul beschäftigen - eigentlich aber auch nicht, denn es folgt unten ein sehr kurzes - aber funktionierendes - Beispiel, wie eine solche Anfrage realisiert werden kann: use strict;
use SOAP::Lite;
my $_key = require ('key.pl');
my $service = SOAP::Lite->service("http://api.google.com/GoogleSearch.wsdl")
my $response = $service->doGoogleSearch($_key, $q,
$start, $max,
$filter,
$restrict,$safe,$lr,
$ie,$oe);
if ($service->call->fault) { # Fehler?
# caller will check this to see if there was an error
$response->{'err'} = $service->call->faultstring;
#... verarbeite Fehlermeldung
} else {
print "$response\n";
} # if
Hier noch eine kurze Erklärung des Source: in der Datei "key.pl" steht in Anführungszeichen "geklammert der von Google vergebene Schlüssel. Dieser wird eingelesen. In der nächsten Zeile wird auf die wsdl-Datei vom Google-Server zugegriffen. Dem neuen Objekt $service werden damit weitere Funktionen "zugeteilt" - u.a. auch die Funktion doGoogleSearch. Ein Aufruf dieser Funktion mit dem Schlüssel, dem Suchstring, dem Startindex, der Anzahl der Suchergebnisse etc. liefert das zu interpretierende Ergebnis. Es gibt noch zwei weitere Funktionen, die die wsdl-Datei zur Verfügung stellt: doGetCachedPage und doSpellingSuggestion, die die von Google archivierte Seite zurückgeben bzw. einen auf die Google-Datenbank abgestimmten, verbesserten Suchbegriff, der evtl. Schreibfehler o.ä. enthalten könnte. (Google hat aber leider auch einige Beschränkungen eingebaut - mit denen man aber durchaus gut leben kann. Die Anzahl der Anfragen pro Tag ist auf 1000 begrenzt und die Anzahl der Suchergebnisse ist je Anfrage auf 10 beschränkt. Damit kann man doch schon einiges anfangen... ;-)) letzte Änderung:
08.Apr 2010
|
rechte SpalteFelicitas-FernsehserviceEin E-Mail-Dienst, der Ihnen täglich eine Auswahl des TV-Programms zusendet, das anhand einer individuellen Suchwortliste erstellt wurde.Klicken Sie hier. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
© Peter Prieß - 2007 |
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||