Wie programmiert man in perl das wenn ein button gedrückt wird, das ein PRINT befehl ausgeführt wird?

...komplette Frage anzeigen

3 Antworten

Du musst den Button in ein HTML Formular setzen, welches bei Klick des Buttons abgeschickt wird. Daher würde sich ein Input-Element vom Typ submit am besten eignen.

Die vom Formular gesendeten Daten musst du dann mit Perl einlesen, danach kannst du mit einem Response reagieren.

Allerdings bin ich der Meinung, dass du dich erst auf die absoluten Grundlagen konzentrieren solltest, bevor du dich an die Formularauswertung heranwagst. IF-ELSE gehört zu den einfachsten Basics.

Die Funktionsweise ist so: Dein Programmfluss soll sich in n Wege aufteilen, also flexibel auf einen Programmzustand reagieren. Also wird ein Zustand geprüft und je nachdem entschieden, wie jeder einzelne Weg aussieht.

if (Bedingung){
  // tu dies
}
else {
  // tu das
}

Ein simples Beispiel:

my $age = 19;

if ($age >= 18) { print "You can enter."; } else { print "You are too young for this page."; }

(A)

Buttons? Das kann man auf zwei Arten verstehen.

(1)

Wenn Du Buttons in HTML-Seiten meinst und von JavaScript zu Perl übergehst, ist dies der wichtigste Unterschied, den Du verstehen mußt:

JavaScript läuft im Browser und reagiert gleich selbst auf die Mausklicks, ohne daß etwas durch die Internetverbindung geschickt werden muß. (Doch, liebe Kollegen, ich kenne Node.js, aber das ist hier jetzt nicht interessant.)

Perl hingegen läuft auf dem Server und kann nur dann auf Mausklicks reagieren, wenn vom Browser aus eine Mitteilung an den Server geschickt wird. Das geht, wie regex9 sagt, mit einem Formular und Submit-Button. Oder mit einem als Button gestylten Link. Das Perl-Programm auf dem Server antwortet dann, indem es eine neue HTML-Seite an den Browser schickt. Beschreibungen dazu findest Du unter dem Suchbegriff CGI.

http://www.netzmafia.de/skripten/perl/

(2)

Wenn Du aber solche Buttons meinst, die nichts mit Internetseiten im Browser zu tun haben, also direkte Bedienungselemente für Dein Perl-Programm, dann mußt Du ein GUI-Modul verwenden. Es gibt mehrere verschiedene, z.B. Perl-TK und wxPerl. Die sind für Anfänger nicht ganz leicht zu verstehen.

http://www.perltk.de/tk_widgets/index.html

http://perl-begin.org/uses/GUI/

(B)

Die if-else-Kontrollstruktur unterscheidet sich bei Perl von der gleichen Kontrollstruktur in JavaScript.

(1)

Erstens müssen bei Perl die beiden Anweisungsblöcke immer in geschweiften Klammern müssen, auch wenn nur eine oder gar keine Anweisung drin steht. Bei JavaScript kann man die Klammer weglassen, wenn der Block nur aus einer Anweisung besteht. (Ich empfehle das aber nicht, denn so entsteht das Risiko, daß man bei späteren Erweiterungen die Klammern hinzuzufügen vergißt und Bugs produziert.)

https://de.wikibooks.org/wiki/Perl-Programmierung%3A_Kontrollstrukturen

(2)

Zweitens gibt es einen wichtigen Unterschied bei den Bedingungen, die die if-Konstruktion steuern. Das sind ja oft Ausdrücke, mit denen zwei Variablen verglichen werden. Bei Perl dürfen Zeichenketten nicht mit == oder != verglichen werden dürfen, sondern man muß stattdessen eq bzw. ne verwenden. Wenn man darauf zu achten vergißt, entstehen Bugs, die bei einer typfreien Sprache wie Perl schwer zu finden sein können.

Gutes Gelingen!

Vorweg, ich kann kein Pearl also hier eher allgemeine Hinweise.

"Button" hört sich sehr start nach GUI an. Wenn du sagst, dass du IFs nicht verstehst, dann solltest du das aber erstmal lernen. GUI kann man machen wenn man Grundlagen kann, nicht davor. Also ganz ganz dringend erstmal den Rest lernen, bevor du GUI machst!

PaulOciepka 04.07.2017, 12:44

In perl kann man html,css und js programmieren. In diesen sprachen bin ich profi aber ich weiß schon relativ viel über perl nur ich bin bei if angelangt. Und dies verstehe ich nicht

0
regex9 04.07.2017, 14:08
@PaulOciepka

Wenn du in JS ein Profi wärst, wäre IF-ELSE auch kein Problem für dich.

0
PaulOciepka 05.07.2017, 08:10
@regex9

Ich kann schon JS aber ich wusste halt nicht wie man in Perl das so macht, also wie das da aussieht.

0
PaulOciepka 04.07.2017, 12:45

Das userinterface kann ich auch schon aber due Funktion fehlt

0
PaulOciepka 04.07.2017, 12:45

*die Funktion

0

Was möchtest Du wissen?