Weiter Zurück Inhalt

7. Perl und ,,die Welt da draußen''

Eine Einführung in Perl sollte nicht ohne einen Hinweis auf die außergewöhnlich sozialen und polyglotten Eigenschaften von Perl enden. Perl fühlt sich nicht nur auf vielen Systemen zu Hause, sondern kommuniziert auch problemlos mit anderen Programmiersprachen, ganz abgesehen von der Tatsache, daß es in sich bereits die Obermenge zahlreicher Konstrukte anderer Programmiersprachen darstellt. Neben der Möglichkeit, C-Programme in Perl einzubinden, gibt es auch die Möglichkeit, Perl von C aus aufzurufen (siehe die perlcall-manpage). Außerdem wurde Perl um komplette Sprachen erweitert bzw. andere Programme wurden um Perl erweitert; so gibt es Tkperl (aka Perl/Tk), das die GUI-Funktionen von Tk/Tcl anbietet, modperl für Webserver (ein Apache mit integriertem Perl) und nviperl, den klassischen Editor vi mit integriertem Perl. Hier folgt eine kurze Vorstellung der wichtigsten Merkmale von Perl/Tk und modperl.

7.1 Perl/Tk

Perl/Tk stellt Module zur Verfügung, die es gestatten, aus Perl heraus die leistungsfähige graphische Benutzerschnittstelle Tk/Tcl aufzurufen. Dazu ist erforderlich, daß Tk/Tcl bereits auf dem Rechner installiert ist. Anschließend muß das Modul Tk installiert werden (zu finden unter dem Eintrag User_Interfaces im Modulverzeichnis auf CPAN). Daraufhin sind die Erweiterungen sofort nutzbar. Da es Tk/Tcl (ebenso wie ja auch Perl) für eine Reihe verschiedener Rechnertypen kostenlos gibt, es mit Perl/Tk möglich, Anwendungen mit graphischer Benutzerschnittstelle zu schreiben, die sowohl unter X als auch unter Windows (oder auf Apple-Rechnern) funktionieren.

Ein einfaches Beispiel findet sich in Perl in a Nutshell im Kapitel Perl/Tk auf Seite 493:


#!/usr/bin/perl -w
use Tk;
my $mw = MainWindow->new;
$mw->Button(-text => "Hello World!", -command =>sub{exit})->pack;
MainLoop;

Das Nußschalen-Buch widmet den grundlegenden Eigenschaften von Perl/Tk rund fünfzig Seiten und ist daher hervorragend als Einführung geeignet.

Das folgende Code-Fragment zeigt (bis auf den Mustertext) den gesamten funktionstragenden Inhalt von /usr/lib/perl5/site_perl/Tk/demos/widget_lib/texts.pl


# texts.pl

use vars qw/$TOP/;

sub texts {

    # Create a top-level window that displays a basic text widget.

    my ($demo) = @_;
    $TOP = $MW->WidgetDemo(
        -name     => $demo,
        -text     => '',
        -title    => 'Text Demonstration - Basic Facilities',
        -iconname => 'texts',
    );

    my $t = $TOP->Scrolled(qw/Text -relief sunken -borderwidth 2 -setgrid true
                           -height 30 -scrollbars e/);
    $t->pack(qw/-expand yes -fill both/);

    $t->insert('0.0', 'This window is a text widget.  It displays
    # [... hier steht der dargestellte Text des Originalbeispiels ...]
    [...] visible.');

    $t->mark(qw/set insert 0.0/);

} # end texts

1;

7.2 modperl

Web-Server, die für jedes CGI-Programm den Perl-Interpreter aufrufen müssen, erzeugen Lastspitzen, die den Rechner schnell an die Grenzen seiner Leistungsfähigkeit bringen können, wenn in kurzer Zeit sehr viele Anfragen nach CGI-Programmen eintreffen. Unter solchen Umständen macht sich störend bemerkbar, daß für jedes Programm der komplette Zyklus aus Perl-Aufruf und Skript-Kompilierung neu durchlaufen werden muß. Mit dem Modul modperl wird dieses Problem umgangen, indem ein kompletter Perl-Interpreter in den bekannten Web-Server Apache (httpd) eingebunden wird. Auf diese Weise steht Perl ständig im Arbeitsspeicher zur Verfügung und muß nicht für jedes CGI-Programm neu aufgerufen werden.


Weiter Zurück Inhalt