Ich habe festgestellt, dass ich zwei Variablen in einer Anweisung deklarieren kann:
%Vor%Aber ich denke, dass diese Syntax verwirrend sein kann, wenn wir zum Beispiel fünf Variablendeklarationen hätten, wäre es schwierig zu sehen, welcher Wert zu welcher Variablen gehört. Also ich denke, es wäre besser, wenn wir diese Syntax verwenden könnten:
%Vor%Ich frage mich, warum diese Art von Erklärung in Perl nicht möglich ist? Und gibt es Alternativen?
(Ich versuche zu vermeiden, my
für jede Deklaration zu wiederholen wie: my $a=1; my $b=2;
)
Nein. Variablen, die von my
deklariert wurden, werden nur benannt, wenn die nächste Anweisung beginnt. Sie können der neu erstellten Variablen nur dann zuweisen, wenn Sie sie der zurückgegebenen Variablen zuweisen. Denken Sie an my
als new
, das auch deklariert.
Wie für Ihren speziellen Code,
%Vor%bedeutet
%Vor%Offensichtlich, nicht gut.
Wenn Sie Variablen verwendet hätten, die nicht bereits deklariert wurden [1] , hätten Sie einen strikten Fehler erhalten.
$a
und $b
sind in jedem Namespace vordefiniert, um die Verwendung von sort
zu ermöglichen. Ich bin neu bei Perl, aber ich werde dir sagen, was ich bisher gelernt habe.
Ich werde dazu übergehen, $start
und $end
anstelle von $a
und $b
zu verwenden, weil $a
und $b
spezielle Variablen sind, die immer deklariert werden.
Um Ihre ursprüngliche Frage zu beantworten, können Sie mehrere Variablen in einer einzelnen Zeile deklarieren und zuweisen:
%Vor%Persönlich finde ich das über die gleiche Typisierung und weniger klar als über jeweils eine separate Zeile:
%Vor% Ich denke jedoch, dass es nützlich ist, Subroutinen-Parametern benannten Variablen zuzuweisen, weil die Subroutinen-Parameter in einer Liste namens @_
:
Sie können in der Dokumentation noch einige Besonderheiten der my
-Anweisung sehen, einschließlich einer Möglichkeit, sie zu ignorieren einige der Werte in der Liste.
Unten ist die Methode, um mehrere Variablen in einer Zeile in Perl zu deklarieren:
mein ($ tag, $ mon, $ jahr, $ hr, $ min, $ sek) = (0) x 6;
Hier wurden alle obigen Variablen mit 0 initialisiert. Der Wiederholungsoperator 'x' wird verwendet.
Um Verwirrung in diesen Fällen zu vermeiden, könnte man das normalerweise so machen:
%Vor%Nach dem KISS-Prinzip .
Ikegami stellt fest, die Alternative wäre:
%Vor%Tags und Links perl