perlintro - Online in der Cloud

Dies ist der Befehl perlintro, der im kostenlosen OnWorks-Hosting-Provider über eine unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, Windows-Online-Emulator oder MAC OS-Online-Emulator ausgeführt werden kann

PROGRAMM:

NAME/FUNKTION


perlintro -- eine kurze Einführung und Übersicht über Perl

BESCHREIBUNG


Dieses Dokument soll Ihnen einen schnellen Überblick über die Programmiersprache Perl geben,
zusammen mit Hinweisen auf weiterführende Dokumentation. Es ist als "Bootstrap"-Anleitung für gedacht
für diejenigen, die neu in der Sprache sind, und bietet gerade genug Informationen, damit Sie in der Lage sind
um das Perl anderer Leute zu lesen und ungefähr zu verstehen, was es tut, oder schreiben Sie Ihr eigenes
einfache Skripte.

Dieses einleitende Dokument erhebt keinen Anspruch auf Vollständigkeit. Es zielt nicht einmal darauf ab, zu sein
ganz genau. In einigen Fällen wurde Perfektion geopfert, um das Ziel zu erreichen
die allgemeine Idee hinüber. Sie sind starker empfohlen, dieser Einführung mit mehr zu folgen
Informationen aus dem vollständigen Perl-Handbuch, das Inhaltsverzeichnis finden Sie in
perltoc.

In diesem Dokument finden Sie Verweise auf andere Teile der Perl-Dokumentation.
Sie können diese Dokumentation mit dem Befehl "perldoc" oder einer anderen Methode lesen
verwenden, um dieses Dokument zu lesen.

In der gesamten Perl-Dokumentation finden Sie zahlreiche Beispiele, die Ihnen bei der Erläuterung helfen sollen
die besprochenen Funktionen. Bitte bedenken Sie, dass viele davon eher Codefragmente sind
als komplette Programme.

Diese Beispiele spiegeln oft den Stil und die Vorliebe des Autors dieses Stücks wider
Dokumentation und kann kürzer sein als eine entsprechende Codezeile in einem echten Programm.
Sofern nicht anders angegeben, sollten Sie davon ausgehen, dass "Strenge verwenden" und "Warnungen verwenden"
Anweisungen, die früher im "Programm" erscheinen, und dass alle verwendeten Variablen bereits verwendet wurden
deklariert, auch wenn diese Deklarationen weggelassen wurden, um das Beispiel leichter lesbar zu machen.

Beachten Sie, dass die Beispiele von vielen verschiedenen Autoren über einen Zeitraum von
mehrere Jahrzehnte. Stile und Techniken werden sich daher unterscheiden, obwohl einige Anstrengungen unternommen wurden
wurde gemacht, um die Stile in den gleichen Abschnitten nicht zu stark zu variieren. Betrachten Sie nicht einen Stil
besser zu sein als andere - "Es gibt mehr als einen Weg, es zu tun" ist eines der Mottos von Perl.
Schließlich werden Sie auf Ihrer Reise als Programmierer wahrscheinlich auf verschiedene Stile stoßen.

Was is Perle?
Perl ist eine universelle Programmiersprache, die ursprünglich für die Textmanipulation entwickelt wurde
und wird jetzt für eine Vielzahl von Aufgaben verwendet, darunter Systemadministration, Webentwicklung,
Netzwerkprogrammierung, GUI-Entwicklung und mehr.

Die Sprache soll praktisch sein (einfach zu verwenden, effizient, vollständig) und nicht
schön (winzig, elegant, minimal). Seine Hauptmerkmale sind, dass es einfach zu bedienen ist,
unterstützt sowohl prozedurale als auch objektorientierte (OO) Programmierung, verfügt über leistungsstarke integrierte
Unterstützung für die Textverarbeitung und verfügt über eine der weltweit beeindruckendsten Sammlungen von
Module von Drittanbietern.

Verschiedene Definitionen von Perl werden in perl, perlfaq1 und zweifellos an anderen Stellen gegeben. Von
Damit können wir feststellen, dass Perl für verschiedene Leute unterschiedliche Dinge ist, aber viele
Die Leute denken, es lohnt sich zumindest, darüber zu schreiben.

Laufen Perl Programme
So führen Sie ein Perl-Programm über die Unix-Befehlszeile aus:

perl programmname.pl

Alternativ können Sie dies als erste Zeile Ihres Skripts einfügen:

#!/usr/bin/env perl

... und führen Sie das Skript aus als /pfad/zu/script.pl. Natürlich muss es ausführbar sein
zuerst also "chmod 755 script.pl" (unter Unix).

(Diese Startlinie setzt voraus, dass Sie die env Programm. Sie können den Pfad auch direkt angeben
Ihre ausführbare Perl-Datei, wie in "#!/ Usr / bin / perl").

Weitere Informationen, einschließlich Anweisungen für andere Plattformen wie Windows und Mac
OS, perlrun lesen.

Sicherheit Netto-
Perl ist standardmäßig sehr nachsichtig. Um es robuster zu machen, wird empfohlen,
Starten Sie jedes Programm mit den folgenden Zeilen:

#!/ Usr / bin / perl
Verwenden Sie strenge;
Warnungen verwenden;

Die beiden zusätzlichen Zeilen fordern von Perl an, um verschiedene häufige Probleme in Ihrem Code abzufangen.
Sie überprüfen verschiedene Dinge, also brauchen Sie beides. Ein potenzielles Problem, das von "use strict" abgefangen wird;
bewirkt, dass Ihr Code sofort anhält, wenn er gefunden wird, während "use warnings;"
gibt lediglich eine Warnung aus (wie der Befehlszeilenschalter -w) und lassen Sie Ihren Code laufen. Zu
Lesen Sie mehr über sie, überprüfen Sie die entsprechenden Handbuchseiten unter strikte und Warnungen.

Basic Syntax Überblick
Ein Perl-Skript oder -Programm besteht aus einer oder mehreren Anweisungen. Diese Aussagen sind einfach
direkt im Skript geschrieben. Es ist kein "main()" erforderlich
Funktion oder ähnliches.

Perl-Anweisungen enden mit einem Semikolon:

print "Hallo Welt";

Kommentare beginnen mit einem Raute-Symbol und laufen bis zum Ende der Zeile

# Dies ist ein Kommentar

Leerzeichen sind irrelevant:

drucken
"Hallo Welt"
;

... außer innerhalb von Strings in Anführungszeichen:

# dies würde mit einem Zeilenumbruch in der Mitte gedruckt
drucken "Hallo
Welt";

Um Literalzeichenfolgen können doppelte oder einfache Anführungszeichen verwendet werden:

print "Hallo Welt";
print 'Hallo Welt';

Allerdings "interpolieren" nur doppelte Anführungszeichen Variablen und Sonderzeichen wie
Zeilenumbrüche ("\n"):

print "Hallo, $name\n"; # funktioniert gut
print 'Hallo, $name\n'; # gibt $name\n wörtlich aus

Zahlen brauchen keine Anführungszeichen um sie herum:

Druck 42;

Sie können Klammern für die Argumente von Funktionen verwenden oder sie entsprechend Ihrer persönlichen Einstellungen weglassen
Geschmack. Sie werden nur gelegentlich zur Klärung von Rangordnungsfragen benötigt.

print("Hallo Welt\n");
print "Hallo Welt\n";

Ausführlichere Informationen zur Perl-Syntax finden Sie in perlsyn.

Perl Variable Typen
Perl hat drei Hauptvariablentypen: Skalare, Arrays und Hashes.

Skalare
Ein Skalar repräsentiert einen einzelnen Wert:

mein $tier = "Kamel";
meine $antwort = 42;

Skalarwerte können Strings, Ganzzahlen oder Gleitkommazahlen sein, und Perl wird
automatisch zwischen ihnen umwandeln, wie erforderlich. Es ist keine Voranmeldung erforderlich
Variablentypen, aber Sie müssen sie beim ersten Mal mit dem Schlüsselwort "my" deklarieren
benutze sie. (Dies ist eine der Anforderungen von "use strikt;".)

Skalare Werte können auf verschiedene Weise verwendet werden:

drucke $Tier;
print "Das Tier ist $Tier\n";
print "Das Quadrat von $answer ist ", $answer * $answer, "\n";

Es gibt eine Reihe von "magischen" Skalaren mit Namen, die wie ein Satzzeichen oder eine Linie aussehen
Lärm. Diese speziellen Variablen werden für alle möglichen Zwecke verwendet und sind dokumentiert
im perlvar. Das einzige, was Sie im Moment wissen müssen, ist $_, die "Standardeinstellung".
Variable". Es wird als Standardargument für eine Reihe von Funktionen in Perl verwendet, und
es wird implizit durch bestimmte Schleifenkonstrukte gesetzt.

drucken; # druckt standardmäßig den Inhalt von $_

Arrays
Ein Array stellt eine Liste von Werten dar:

mein @animals = ("Kamel", "Lama", "Eule");
meine @Zahlen = (23, 42, 69);
mein @mixed = ("Kamel", 42, 1.23);

Arrays sind nullindiziert. So gelangen Sie zu Elementen in einem Array:

drucke $tiere[0]; # druckt "Kamel"
drucke $tiere[1]; # druckt "Lama"

Die spezielle Variable $#array gibt Ihnen den Index des letzten Elements eines Arrays an:

drucke $gemischt[$#gemischt]; # letztes Element, druckt 1.23

Sie könnten versucht sein, "$#array + 1" zu verwenden, um Ihnen mitzuteilen, wie viele Elemente sich in einem . befinden
Array. Mach dir keine Mühe. Zufälligerweise mit @array, wo Perl erwartet, einen Skalar zu finden
value ("im skalaren Kontext") gibt Ihnen die Anzahl der Elemente im Array:

if (@tiere < 5) { ... }

Die Elemente, die wir aus dem Array erhalten, beginnen mit einem "$", weil wir nur
ein einzelner Wert aus dem Array; Wenn Sie nach einem Skalar fragen, erhalten Sie einen Skalar.

So rufen Sie mehrere Werte aus einem Array ab:

@tiere[0,1]; # gibt ("Kamel", "Lama");
@tiere[0..2]; # gibt ("Kamel", "Lama", "Eule");
@Tiere[1..$#Tiere]; # gibt alles außer dem ersten Element

Dies wird als "Array-Slice" bezeichnet.

Sie können mit Listen verschiedene nützliche Dinge tun:

mein @sorted = @Tiere sortieren;
mein @rückwärts = @Zahlen umkehren;

Es gibt auch ein paar spezielle Arrays, wie zum Beispiel @ARGV (die Befehlszeilenargumente für
Ihr Skript) und @_ (die an eine Unterroutine übergebenen Argumente). Diese sind dokumentiert in
Perlvar.

Hashes
Ein Hash repräsentiert eine Reihe von Schlüssel/Wert-Paaren:

my %fruit_color = ("Apfel", "Rot", "Banane", "Gelb");

Sie können Leerzeichen und den Operator "=>" verwenden, um sie schöner anzuordnen:

mein %fruit_color = (
Apfel => "rot",
Banane => "gelb",
);

Um zu Hash-Elementen zu gelangen:

$fruit_color{"Apfel"}; # gibt "rot"

Mit "keys()" und "values()" gelangen Sie zu Listen von Schlüsseln und Werten.

mein @fruits = Schlüssel %fruit_colors;
meine @colors = Werte %fruit_colors;

Hashes haben keine bestimmte interne Reihenfolge, obwohl Sie die Schlüssel und die Schleife sortieren können
durch sie.

Genau wie spezielle Skalare und Arrays gibt es auch spezielle Hashes. Am besten
davon bekannt ist %ENV, das Umgebungsvariablen enthält. Lesen Sie alles darüber (und
andere spezielle Variablen) in perlvar.

Skalare, Arrays und Hashes sind in perldata ausführlicher dokumentiert.

Komplexere Datentypen können mithilfe von Referenzen konstruiert werden, mit denen Sie erstellen können
Listen und Hashes innerhalb von Listen und Hashes.

Eine Referenz ist ein skalarer Wert und kann auf jeden anderen Perl-Datentyp verweisen. Durch Speichern von a
Referenz als Wert eines Arrays oder Hash-Elements, können Sie ganz einfach Listen und Hashes erstellen
innerhalb von Listen und Hashes. Das folgende Beispiel zeigt einen zweistufigen Hash der Hash-Struktur
mit anonymen Hash-Referenzen.

meine $variablen = {
Skalar => {
Beschreibung => "Einzelartikel",
Siegel => '$',
},
Array => {
description => "sortierte Artikelliste",
Siegel => '@',
},
hash => {
Beschreibung => "Schlüssel/Wert-Paare",
Siegel => '%',
},
};

print "Skalare beginnen mit einem $variablen->{'Skalar'}->{'Sigil'}\n";

Ausführliche Informationen zum Thema Referenzen finden Sie in perlreftut, perllol,
perlref und perldsc.

Variable bereichsbestimmung
Im gesamten vorherigen Abschnitt haben alle Beispiele die Syntax verwendet:

mein $var = "Wert";

Das "my" ist eigentlich nicht erforderlich; du könntest einfach verwenden:

$var = "Wert";

Durch die obige Verwendung werden jedoch im gesamten Programm globale Variablen erstellt, d. h
schlechte Programmierpraxis. "my" erstellt stattdessen lexikalisch gültige Variablen. Die Variablen
sind auf den Block beschränkt (dh eine Reihe von Anweisungen, die von geschweiften Klammern umgeben sind), in denen
sie sind definiert.

mein $x = "foo";
meine $some_condition = 1;
if ($some_condition) {
mein $y = "bar";
drucke $x; # druckt "foo"
drucke $y; # druckt "bar"
}
drucke $x; # druckt "foo"
drucke $y; # gibt nichts aus; $y ist aus dem Geltungsbereich gefallen

Die Verwendung von "my" in Kombination mit einem "use strict;" am Anfang Ihrer Perl-Skripte bedeutet, dass
der Interpreter erkennt bestimmte häufige Programmierfehler. Zum Beispiel in der
Beispiel oben, das letzte "print $y" würde einen Kompilierzeitfehler verursachen und Sie daran hindern
das Programm ausführen. Die Verwendung von "streng" wird dringend empfohlen.

Bedingt und Schleife Konstrukte
Perl hat die meisten der üblichen Bedingungs- und Schleifenkonstrukte. Ab Perl 5.10 ist es sogar
hat eine case/switch-Anweisung (buchstabiert "gegeben"/"wenn"). Siehe "Switch-Anweisungen" in perlsyn
für weitere Informationen an.

Die Bedingungen können ein beliebiger Perl-Ausdruck sein. Siehe die Liste der Operatoren im nächsten Abschnitt
für Informationen zu Vergleichs- und Booleschen Logikoperatoren, die häufig in verwendet werden
bedingte Aussagen.

if
wenn ( Bedingung ) {
...
} elsif (andere Bedingung) {
...
} Else {
...
}

Es gibt auch eine negierte Version davon:

es sei denn ( Bedingung ) {
...
}

Dies wird als besser lesbare Version von "if (!Zustand)".

Beachten Sie, dass die geschweiften Klammern in Perl erforderlich sind, auch wenn Sie nur eine Zeile im
Block. Es gibt jedoch eine clevere Möglichkeit, Ihre einzeiligen bedingten Blöcke mehr zu gestalten
Englisch wie:

# der traditionelle Weg
if ($zippy) {
drucke "Yow!";
}

# der perlish-Nachkonditionsweg
Drucken Sie "Yow!" if $zippy;
print "Wir haben keine Bananen" außer $bananas;

während
während ( Bedingung ) {
...
}

Es gibt auch eine negierte Version, aus dem gleichen Grund haben wir "es sei denn":

bis (Bedingung) {
...
}

Sie können "while" auch in einer Nachbedingung verwenden:

drucke "LA LA LA\n" während 1; # Schleifen für immer

für genau wie C:

für ($i = 0; $i <= $max; $i++) {
...
}

Die for-Schleife im C-Stil wird in Perl selten benötigt, da Perl die benutzerfreundlichere bietet
Liste scannen "foreach" Schleife.

foreach
foreach (@array) {
print "Dieses Element ist $_\n";
}

drucke $list[$_] foreach 0 .. $max;

# Sie müssen auch nicht den Standardwert $_ verwenden...
foreach my $key (Schlüssel %hash) {
print "Der Wert von $key ist $hash{$key}\n";
}

Das Schlüsselwort "foreach" ist eigentlich ein Synonym für das Schlüsselwort "for". Siehe ""Foreach
Schleifen" in perlsyn".

Weitere Informationen zu Schleifenkonstrukten (und einigen, die in dieser Übersicht nicht erwähnt wurden)
siehe perlsyn.

builtin durch und Funktionen
Perl kommt mit einer großen Auswahl an eingebauten Funktionen. Einige von denen, die wir bereits haben
Zu sehen sind "Drucken", "Sortieren" und "Umkehren". Eine Liste von ihnen wird zu Beginn des gegeben
perlfunc und Sie können leicht über jede gegebene Funktion lesen, indem Sie "perldoc -f
Funktionsname".

Perl-Operatoren sind vollständig in perlop dokumentiert, aber hier sind einige der gebräuchlichsten
Einsen:

Arithmetik
+ zusätzlich
- Subtraktion
* Multiplikation
/ Aufteilung

Numerischer Vergleich
== Gleichheit
!= Ungleichheit
< weniger als
> größer als
<= kleiner oder gleich
>= größer oder gleich

Stringvergleich
eq-Gleichheit
ne Ungleichung
Es ist weniger als
gt größer als
le kleiner oder gleich
ge größer oder gleich

(Warum haben wir separate numerische und Zeichenfolgenvergleiche? Weil wir keine haben
spezielle Variablentypen, und Perl muss wissen, ob numerisch sortiert werden soll (wobei 99
kleiner als 100 ist) oder alphabetisch (wobei 100 vor 99 kommt).

Boolesche Logik
&& und
|| oder
! nicht

("und", "oder" und "nicht" sind in der obigen Tabelle nicht nur als Beschreibungen der
Betreiber. Sie werden auch als eigene Operatoren unterstützt. Sie sind mehr
lesbar als die Operatoren im C-Stil, haben aber eine andere Priorität als "&&" und
Freunde. Überprüfen Sie perlop für weitere Details.)

Weitere Anwendungsbereiche
= Aufgabe
. String-Verkettung
x String-Multiplikation
.. Bereichsoperator (erstellt eine Liste von Zahlen oder Zeichenfolgen)

Viele Operatoren können wie folgt mit einem "=" kombiniert werden:

$a += 1; # wie $a = $a + 1
$a -= 1; # wie $a = $a - 1
$a .= "\n"; # wie $a = $a . "\n";

Mappen und I / O
Mit der Funktion "open()" können Sie eine Datei zur Ein- oder Ausgabe öffnen. Es ist dokumentiert in
extravagantes Detail in perlfunc und perlopentut, aber kurz:

open(my $in, "<", "input.txt") or die "Eingabe.txt kann nicht geöffnet werden: $!";
open(my $out, ">", "output.txt") or die "Output.txt kann nicht geöffnet werden: $!";
open(my $log, ">>", "my.log") or die "My.log kann nicht geöffnet werden: $!";

Mit dem Operator "<>" können Sie aus einem geöffneten Dateihandle lesen. Im skalaren Kontext lautet es
eine einzelne Zeile aus dem Dateihandle, und im Listenkontext wird die gesamte Datei eingelesen,
jede Zeile einem Element der Liste zuordnen:

meine $zeile = <$in>;
meine @lines = <$in>;

Das gleichzeitige Einlesen der gesamten Datei wird als schlürfen bezeichnet. Es kann nützlich sein, aber es kann sein
ein Gedächtnisschwein. Die meisten Textdateien können mit Perls Schleifen zeilenweise verarbeitet werden
Konstrukte.

Der Operator "<>" wird am häufigsten in einer "while"-Schleife gesehen:

while (<$in>) { # weist jede Zeile der Reihe nach $_ zu
print "Einfach diese Zeile einlesen: $_";
}

Wir haben bereits gesehen, wie Sie mit "print()" auf die Standardausgabe drucken. Aber "print()"
kann auch ein optionales erstes Argument annehmen, das angibt, an welches Dateihandle gedruckt werden soll:

print STDERR "Dies ist Ihre letzte Warnung.\n";
drucke $out $record;
drucke $log $logmessage;

Wenn Sie mit Ihren Dateihandles fertig sind, sollten Sie sie "close()" (obwohl, um ehrlich zu sein,
Perl wird nach Ihnen aufräumen, wenn Sie es vergessen):

$in schließen oder sterben "$in: $!";

Normale Ausdrücke
Perls Unterstützung für reguläre Ausdrücke ist sowohl breit als auch tiefgehend und Gegenstand langer
Dokumentation in perlrequick, perlretut und anderswo. Aber kurz gesagt:

Einfaches Matching
if (/foo/) { ... } # true if $_ enthält "foo"
if ($a =~ /foo/) { ... } # true wenn $a "foo" enthält

Der Übereinstimmungsoperator "//" ist in perlop dokumentiert. Es arbeitet standardmäßig auf $_, oder
kann mit dem Bindungsoperator "=~" an eine andere Variable gebunden werden (auch dokumentiert in
perlo).

Einfache Ersetzung
s/foo/bar/; # ersetzt foo durch bar in $_
$a =~ s/foo/bar/; # ersetzt foo durch bar in $a
$a =~ s/foo/bar/g; # ersetzt ALLE INSTANZEN von foo durch bar
# in $a

Der Substitutionsoperator "s///" ist in perlop dokumentiert.

Komplexere reguläre Ausdrücke
Sie müssen nicht nur auf festen Zeichenfolgen übereinstimmen. Tatsächlich können Sie auf fast
alles, wovon Sie träumen können, indem Sie komplexere reguläre Ausdrücke verwenden. Diese sind
in Perlre ausführlich dokumentiert, aber für die Zwischenzeit hier ein kurzer Cheat
Blatt:

. ein einzelnes Zeichen
\sa Leerzeichen (Leerzeichen, Tabulator, Zeilenumbruch,
...)
\S Nicht-Leerzeichen
\da-Ziffer (0-9)
\D eine Nichtziffer
\wa Wortzeichen (az, AZ, 0-9, _)
\W ein Nicht-Wort-Zeichen
[aeiou] entspricht einem einzelnen Zeichen in der gegebenen Menge
[^aeiou] entspricht einem einzelnen Zeichen außerhalb des angegebenen
kompensieren
(foo|bar|baz) stimmt mit einer der angegebenen Alternativen überein

^ Anfang der Zeichenfolge
$ Ende des Strings

Quantifizierer können verwendet werden, um anzugeben, wie viele des vorherigen Dings Sie abgleichen möchten
on, wobei "Ding" entweder ein wörtliches Zeichen oder eines der aufgeführten Metazeichen bedeutet
oben, oder eine Gruppe von Zeichen oder Metazeichen in Klammern.

* null oder mehr vom vorherigen Ding
+ eines oder mehrere der vorherigen Dinge
? null oder eins der vorherigen sache
{3} stimmt genau mit 3 des vorherigen Dings überein
{3,6} stimmt zwischen 3 und 6 des vorherigen Dings überein
{3,} stimmt mit 3 oder mehr des vorherigen Dings überein

Einige kurze Beispiele:

/^\d+/ String beginnt mit einer oder mehreren Ziffern
/^$/ nichts im String (Start und Ende sind
benachbart)
/(\d\s){3}/ drei Ziffern, jeweils gefolgt von einem Leerzeichen
Zeichen (zB "3 4 5")
/(a.)+/ stimmt mit einer Zeichenkette überein, in der jede ungerade Zahl
Buchstabe ist ein (zB "abacadaf")

# Diese Schleife liest von STDIN und gibt nicht leere Zeilen aus:
während (<>) {
weiter if /^$/;
drucken;
}

Klammern für die Aufnahme
Klammern dienen neben der Gruppierung noch einem zweiten Zweck. Sie können verwendet werden, um zu erfassen
die Ergebnisse von Teilen der Regexp-Übereinstimmung für die spätere Verwendung. Die Ergebnisse enden in $1, $2
und so weiter.

# eine billige und unangenehme Möglichkeit, eine E-Mail-Adresse in Teile zu zerlegen

if ($email =~ /([^@]+)@(.+)/) {
print "Benutzername ist $1\n";
print "Hostname ist $2\n";
}

Andere Regexp-Funktionen
Perl-Regexps unterstützen auch Rückverweise, Lookaheads und alle möglichen anderen komplexen
Einzelheiten. Lesen Sie alles über sie in perlrequick, perlretut und perlre.

Schreiben Unterprogramme
Das Schreiben von Unterprogrammen ist einfach:

Unterlogger {
meine $logmessage = shift;
open my $logfile, ">>", "my.log" or die "Meine.log konnte nicht geöffnet werden: $!";
drucke $logfile $logmessage;
}

Jetzt können wir das Unterprogramm wie jede andere eingebaute Funktion verwenden:

logger("Wir haben eine Logger-Unterroutine!");

Was ist diese "Verschiebung"? Nun, die Argumente zu einem Unterprogramm stehen uns als Special zur Verfügung
Array namens @_ (siehe Perlvar für mehr dazu). Das Standardargument für "shift"
Funktion ist einfach @_. Also "meine $logmessage = shift;" verschiebt das erste Element aus
die Liste der Argumente und weist sie $logmessage zu.

Wir können @_ auch auf andere Weise manipulieren:

my ($logmessage, $priorität) = @_; # gemeinsames
meine $logmessage = $_[0]; # ungewöhnlich und hässlich

Unterroutinen können auch Werte zurückgeben:

Unterquadrat {
mein $num = Verschiebung;
mein $ergebnis = $num * $num;
Rückgabe von $ergebnis;
}

Dann verwende es wie folgt:

$qm = quadratisch(8);

Weitere Informationen zum Schreiben von Unterprogrammen finden Sie unter perlsub.

OO Perl
OO Perl ist relativ einfach und wird unter Verwendung von Referenzen implementiert, die wissen, welche Art von
Objekt basieren sie auf dem Perl-Konzept der Pakete. OO Perl geht jedoch weit darüber hinaus
den Umfang dieses Dokuments. Lesen Sie perlootut und perlobj.

Als Anfänger von Perl-Programmierern verwenden Sie OO Perl am häufigsten in der Verwendung von Drittanbietern.
Partymodule, die unten dokumentiert sind.

Die richtigen Perl Module
Perl-Module bieten eine Reihe von Funktionen, die Ihnen helfen, das Rad nicht neu zu erfinden, und können
von CPAN heruntergeladen werden ( http://www.cpan.org/ ). Eine Reihe beliebter Module sind
in der Perl-Distribution selbst enthalten.

Die Modulkategorien reichen von Textmanipulation über Netzwerkprotokolle bis hin zu Datenbanken
Integration in Grafiken. Eine kategorisierte Liste von Modulen ist auch von CPAN erhältlich.

Um zu erfahren, wie Sie Module installieren, die Sie von CPAN herunterladen, lesen Sie perlmodinstall.

Um zu lernen, wie man ein bestimmtes Modul verwendet, verwenden Sie "perldoc Modulname". Normalerweise wirst du
Möchte benutzen Modulname", die Ihnen dann Zugriff auf exportierte Funktionen oder eine OO
Schnittstelle zum Modul.

perlfaq enthält Fragen und Antworten zu vielen gängigen Aufgaben und bietet oft
Vorschläge für gute CPAN-Module.

perlmod beschreibt allgemein Perl-Module. perlmodlib listet die mitgelieferten Module auf
Ihre Perl-Installation.

Wenn Sie den Drang verspüren, Perl-Module zu schreiben, gibt Ihnen perlnewmod gute Ratschläge.

Verwenden Sie perlintro online mit den onworks.net-Diensten



Neueste Linux- und Windows-Online-Programme