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.
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;
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.