Thread Perl lokal ausführen und Ausgeben (10 answers)
Opened by geloescht at 2012-09-09 21:48

topeg
 2012-09-09 22:58
#161711 #161711
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Es besteht grundsätzlich zwei Möglichkeiten der Ausgabe, wenn du PerlScripte ausführst.

CGI-Scripte unterscheiden sich von "normalen" Scripten darin, das sie ihre Ausgabe machen (Webseite) uns sich danach beenden. Das ist bei lokal laufenden Scripten etwas anders. Sie werden einmal gestartet und arbeiten interaktiv mit dem Nutzer. Sie warten auf eingaben und machen Ausgaben. Das muss man beachten wenn man interaktive lokale Scripte schreibt.


1. Ein/Ausgabe auf der Shell.
Die Ausgabe erfolgt auf der Konsole.
Diese unterteilen sich in Scripte die Interaktiv sind und welche die es nicht sind.
"ls" ist ein Beispiel für ein Programm das nicht interaktiv ist. Man gibt den Programmnamen ein und hängt hinten Optionen an, die an das Programm beim Start übergeben werden.
"top" ist ein Beispiel für ein interaktives Programm. Es reagiert auf Nutzereingaben und aktualisiert seine Ausgabe regelmäßig.
Nicht interaktive Konsolen-Scripte sind für kleine Aufgaben interessant, die man einmal Konfiguriert und dann automatisch, oder nahezu automatisch benutzt. Darunter fallen Backup-Scripte, Filter für Dateien, oder Eingaben oder ähnliches.
Interaktive Scripte erbauben dem Benutzer den Programmablauf dynamisch zu verändern. Er kann interaktiv Entscheidungen treffen oder aktionen unterbrechen. Dazu gibt es pseudographische Ausgaben auf der Shell
Die meisten Terminals erlauben es mittels ASCII grafikartige Ausgaben. Einfache Beutzeroberflächen lassen sich so gestalten. Das wird aber alles sehr altbacken, ist aber sehr Portabel auch zwischen verschiedenen Betriebssystemen.
Dazu gibt es in Perl Bibliotheken, die einem viel Arbeit abnehmen
unter anderem
CPAN:Curses::UI
CPAN:Term::Visual
CPAN:Term::UI

2. Graphische Ausgaben.
Das sind alles Interaktive Scripte. Sie stellen ihre Daten Graphisch dar und interagieren mit dem Benutzer über Maus und Tastatur.
Hat komplexe Probleme zu lösen, oder will man eine größere Bandbreite an Ausdrucksmöglichkeiten, ist es günstig eine Graphisches UI zu schreiben.
Dazu kann man auf GUI-Frameworks zurückgreifen. Diese haben vorgefertigte Grafikellemente, die bestimme Ein- und Ausgaben erlauben. Diese Elemente werden allgemein Widgets genannt. (Windowed Gadgets)
Auch hier gibt es eine Reihe von Frameworks die einem viel Arbeit abnehmen.

CPAN:Tk
Das ist eines der Ältesten Frameworks für perl. Es handelt sich um eine Portierung von TCL/Tk nach Perl. Diese Portierung ist sehr alt und dem entsprechend altbacken kann die GUI wirken. Sie integriert sich optisch nicht sehr gut in den Desktop. Dafür gibt es aber viel Dokumentation und Beispiele. Sie gilt als sehr ausgereift und ist in Perl recht leicht zu handhaben.

CPAN:Tkx
Ist eine neuere Portierung von TCL/Tk für Perl sie versucht das einigen Problemen der Portierung aus dem Weg zu gehen, und so möglichst aktuell zu bleiben. Sie ist recht neu und die Benutzung ist für eingefleischte Perl-Nutzer ungewohnt. Speziell wenn sie vorher Tk benutzt haben.

CPAN:Gtk2
Ein Perlbinding zu den Gtk2/3 Bibliotheken. Gtk ist ein plattformübergreifendes GUI-Framework, das unteranderen von Gimp oder Gnome benutzt wird. Damit stehen einem alle Möglichkeiten von Gtk zur Verfügung. Leider ist die Dokumentation unter Perl etwas spärlich. Man kann aber auf die C++ oder PHP Dokumentationen zurück greifen. Zudem ist Gtk gut strukturiert und logisch. Ich hab hier im Forum schon ein paar Beispiele geschrieben.

CPAN:Wx
Das ist noch ein Platformübergreifendes GUI-Framework. Dabei wurde wert darauf gelegt das es sich unter jedem Betriebssystem optisch gut einbindet. lichtkind benutzt es z.B für seinen Editor.

Daneben gibt es noch einige weitere Frameworks, die mehr oder weniger verbereitet sind.

Noch ein Wort zum starten von Perlscripten unter Unix/Linux. Alle als ausführbar markierten Dateien werden auch gestartet. Bei Textdateiene, versucht die Shell festzustellen, womit die Datei interpretiert werden soll. Das passiert über das Shebang in der ersten Zeile das Scrips.
In den meisten fällen steht dort etwas in der Art:

#!env perl oder #!/usr/bin/perl
Für Perl ist das nur ein Kommentar aber die Schell erkennt an "#!" das nun ein Kommando folgt das den Interpreter startet.

Für dich bedeutet es: Schtreibe in die erste Zeile des Scripts #!/usr/bin/perl und markiere es als ausführbar. Nun kannst du es auf der Konsole mit "./scriptname" starten oder per Poppelklick in der GUI.

View full thread Perl lokal ausführen und Ausgeben