Vollständige Version anzeigen : [Perl] erste Schritte in Perl


schiene
08.12.2006, 15:27

[ Perl - erste Schritte]

Bemerkung:
Perl ist eine sehr schöne Scriptsprache, da sie Plattformunabhänig ist und auf jedem System läuft, auf dem ein Perlinterpreter installiert ist. Man kann durch Perl besonders in Linux sehr viele Abläufe, z;b. Backups erstellen, einfach automatisieren. Hier sollen allerdings erstaml nur kleine Schritte gemacht werden und eine kleine Einführung gegeben werden.
Ich arbeite mit Linux also stelle dieses Beispiel aufrung einer Linuxdistri vor, allerdings wie schon erwähnt kann man perl auch unter Windows, Mac,.. verwenden.

Das Script:
Wir wollen zunächst ein einfaches Script erstellen, was den Benutzer nach seinem Namen fragt und ihn dann nach 2 Zahlen fragt und dann die Summe der 2 Zahlen ausgeben, sodass es im Endeffekt so aussieht:

schiene;gentoo ~/RR-TUT-PERL $ perl first~pl
Gib deinen Namen an: schiene
Hallo, schiene. Bitte gib eine Zahl ein !
13
Bitte gib eine zweite Zahl ein !
245
Summe : 258


So nun gehen wir die Sache Schritt für Schritt an. Als erstes legen wir eine Datei an mit dem Namen z;b. first;pl. Dann schauen wir uns die erste Zeile an, die allerdings nur für Linux Systeme interessant ist.

#!/usr/bin/perl -w

Dies ist die "Shebang" Zeile. Wenn wir die Datei unter Linux ausfürhbar machen, also mit "chmod +x" z;b;, dann müssen wir nicht extra "perl first;pl" aufrufen, sondern aufgrund dieser Zeile weiß das System, ich muss perl benutzen um dieses Script auszuführen. Das -w bedeutet, dass Fehlermeldungen ausgegeben werden.

Nun wollen wir zunächst den Benutzer nach seinem Namen fragen, das tuen wir mittels einer Do-While Schleife.

do{
print "Gib deinen Namen an: "; // einfach -text ausgeben
chomp($name = <STDIN>); // <STDIN> wartet auf die Eingabe des Benutzers, diese Eingabe wird dann der Variable $name übergeben. chomp() entfernt den Retur Charakter am Ende des Strings, damit man NUR den String bzw. den Benutzernamen hat, ohne einem Return Charakter
}while($name eq "");

print "Hallo, $name. ";


Umgangsprachlich sagt diese Schleife:
Tue etwas solange die Variable Name (Variablen werden werden immer von einem $ Zeichen angeführt) gleich (eq) "" (Leere Eingabe) ist;

Und zwar soll sie den Benutzer nach seinem Namen fragen, bis er ihn auch wirklich eingeben hat.
Dann geben wir den Namen aus, wir können die Variable einfach in einem Text mit print ausgeben lassen.

Dann die Zahleneingabe:
Wir brauchen 3 Variablen, für die Eingabe, Die erste Zahl und die zweite Zahl.

$eingabe = "";
$ersteZahl = 0;
$zweiteZahl = 0;


Dann brauchen wir wieder eine Schleife die die erste Zahl erfragt:

while ($eingabe eq "") {
print "Bitte gib eine Zahl ein !\n";
chomp ($eingabe = <STDIN>);
}

$ersteZahl = $eingabe;


Sie ist der Do-While Schleife der Namenserfragung änlich, NUR dies ist eine While Schleife. Bei einer Do-Shilw Schleife wird erst der Code in Do ausgeführt und dann die Bedingung überprüft. Bei einer While Scleife wird erst überprüft und dann wird der Code ausgeführt. Dann müssen wir die erste Zahl gleich der Eingabe setzen. Bei der zweiten Zahl das gleiche. Aber Vorsicht vorher müssen wir die Varible $eingabe zurücksetzen, sonst währe die Bedingung der While Scleife sofort wahr und die zweite Zahl wäre gleich der ersten.

$eingabe = "";

while ($eingabe eq "") {
print "Bitte gib eine zweite Zahl ein !\n";
chomp ($eingabe = <STDIN>);
}

$zweiteZahl = $eingabe;


Dann rechnen wir die beiden Zahlen zusammen und speichern das Ergebnis in $ergebnis.

$summe = $ersteZahl + $zweiteZahl;

printf ("Summe : %d\n", $summe);


Dann geben wir das Ergebnis aus, und zwar diesmal mit der Funktion printf(). Diese Arbeitet anders als ein normales print, hier kann man die Variablen nicht einfach in den TExt einfügen, hier müssen sie übergeben werden. Und im Text muss man Platzhalter einfügen wie das %d, dies steht für Dezimalzahl, d;h. hier wird eine Dezimalzahl eingetragen und zwar $ergebnis. Bei einem String müsste man %s als Platzhalter verwenden.

Hier eine kleine Tabelle mit den wichtigsten Platzhaltern:
* %s String
* %f Fließkommazahl
* %u Dezimalzahl ohne Vorzeichen
* %c Charakter


HIer der gesamte Code:

#!/usr/bin/perl -w

do{
print "Gib deinen Namen an: ";
chomp($name = <STDIN>);
}while($name eq "");

print "Hallo, $name. ";

$eingabe = "";
$ersteZahl = 0;
$zweiteZahl = 0;

while ($eingabe eq "") {
print "Bitte gib eine Zahl ein !\n";
chomp ($eingabe = <STDIN>);
}

$ersteZahl = $eingabe;
$eingabe = "";

while ($eingabe eq "") {
print "Bitte gib eine zweite Zahl ein !\n";
chomp ($eingabe = <STDIN>);
}

$zweiteZahl = $eingabe;

$summe = $ersteZahl + $zweiteZahl;

printf ("Summe : %d\n", $summe);


So das wars eigentlich schon, ich hoffe dass euch diese kleine Einführung gefallen hat :) Auf jeden Fall ist es Perl wert sich näher damit zu beschäftigen, da man doch damit kleine feine nützliche Scripts dür den alltäglichen Gebrauch selber schreiben kann.

greetz schiene

Hardware Preisvergleich | Amazon Blitzangebote!

Videos zum Thema
Video Loading...
Ähnliche Themen zu [Perl] erste Schritte in Perl
  • libwww-perl ???
    Schau grade ; meinem Forum ; Wer-ist-wo..;und da wird folgendes angezeigt: Gast 6x;6x;1x5;xxx lib;-perl/5;803 16:56 Sonstiges Gast x08;10x;49~xx lib;-perl/5;79 16:54 Sonstiges Gast 2x0;4x;37;xxx lib;-perl/5;65 16:54 Sonstiges Gast 2x0;19x;161 [...]

  • Visualisierung mit PHP / Perl
    Hallo, welche Möglichkeiten habe ich mit PHP und Perl etwas zu visualisieren. Es gibt ja für PHP eine Grafik Lib, aber gibt es noch eine Alternative? Danke! [...]

  • [Thema] Perl
    Hi alle zusammen ! Ich wollte fragen ob es sich lohnt die Programmiersprache Perl auf windows zulernen? Ich wollte mal umbedingt mal eine programmiersprache lernen aber ich weiss nicht ob es auf windows lauft [...]

  • Perl Exploit
    Hi, bin mir nicht sicher ob ich hier richtig gepostet hab.. oder es lieber in exploit hätte posten sollen.. aber ich suche nen perl coder, der mir hilf bei einem perl code.. wäre um jede hilfe ... froh drum gr33tz [...]



raid-rush.ws | Imprint & Contact pr