Was ist die Bedeutung eines Unterstrichs in Perl ($ _, @_)?
Ich bin neu in Perl, und ich gebrauchte Sie wie diese
$_
foreach (@list) {
print "$_\n";
}
@_
sub search {
my ($no, @list) = @_;
}
Wie genau diese Unterstrich Variablen arbeiten, die in Perl? Was sind die anderen Konstrukte, wo Sie nützlich sind?
Kommentar zu dem Problem
Es klingt wie Sie könnte viel mehr eine Einführung in die perl-essentials als StackOverflow Antworten. Wart Ihr auf der learn.perl.org ? Es gibt Ressourcen, darunter offizielle Perl-Dokumentation, Perl-Bücher (einschließlich Beginn Perl kostenlos online) und qualitativ hochwertige online-Lernprogramme.
InformationsquelleAutor der Frage Lazer | 2010-08-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist die Art von Frage, die an Sie wirklich werden sollte, ein Buch zu Lesen, und vielleicht für den rest des perl-tag faqs.
Trotzdem
$_
ist eine Kontext-variable, die erstellt werden implizit durch bestimmte Konstrukte und verwendet implizit durch bestimmte builtin-Funktionen. Hier sind einige Beispiele:Diesem tun eine Menge Arbeit, Einstellung und Inspektion der
$_
variable und ist äquivalent zu:Andere Konstrukte, die festlegen
$_
sind:foreach
Schleifengiven
Blöckemap
undgrep
Operationen, undcatch
Blöcke in Try::Tiny.Andere Konstrukte, die Verwendung
$_
sind: bareprint;
Aussagen, dies///
substitution-operator und dertr///
transliteration Betreiber.Empfehle ich dies: während Sie lernen, Perl nicht benutzen
$_
implizit. Schreiben Sie es alle in voller Höhe (wie im zweiten Beispiel oben), verstärken sich in Ihren Verstand, was eigentlich vor sich geht. Wie beim erlernen einer fremden Sprache, die man lernen sollte, richtig zu sprechen und sorgfältig durch, bevor Sie lernen, abbrv y'language.$_
ist nützlich für das schreiben von kürzeren, terser code, und kann eigentlich klarer sein, indem der Fokus auf die Verarbeitung gehen, anstatt die Variablen es wird getan, aber nur, wenn Sie gelernt haben, wie eine zweite Natur, welche Vorgänge mit$_
. Ansonsten ist es nur ein Durcheinander.Wie an anderer Stelle erwähnt,
@_
ist die Liste von Argumenten an eine subroutine.InformationsquelleAutor der Antwort Philip Potter
Diese sind spezielle Variablen in Perl. Finden Sie Perl - Spezielle Variablen.
InformationsquelleAutor der Antwort Shan