Was ist Drucken EOF; und wie funktioniert es? [Duplikat]

7

Wie lautet die Aussage in Ссылка genau? Ich bin auf den vorherigen Beitrag gestoßen, habe aber nicht verstanden, was er zu erklären versucht. Was ist das PETE ? Kann jemand jede Zeile erklären? Wie funktioniert der Code?

%Vor%

Was ist der Unterschied und die Ähnlichkeit zwischen diesen beiden? Anstelle von PETE habe ich viele andere Wörter wie DOG verwendet und es funktioniert jedes Mal gleich.

    
user1597336 14.08.2012, 08:16
quelle

2 Antworten

20

Dies wird ein Here-Doc genannt. Es nimmt im Grunde genommen alles von der nächsten Zeile bis zu einer Endmarkierungslinie auf und präsentiert es als Standardeingabe für das laufende Programm. Die Endmarkierungslinie wird durch den Text nach dem << gesteuert.

Als Beispiel, in bash (was ich besser als Perl kenne), der Befehl:

%Vor%

führt cat aus und sendet dann zwei Zeilen an seine Standardeingabe (die Zeilen hallo und adieu). Perl hat diese Funktion auch, obwohl die Syntax etwas anders ist (wie Sie es erwarten würden, da es eine andere Sprache ist). Dennoch ist es nahe genug, dass die Erklärung noch immer gültig ist.

Wikipedia hat einen Eintrag für dieses , den Sie wahrscheinlich gefunden hätten, wenn Sie gewusst hätten, dass es ein here-doc heißt, aber ansonsten wäre es ziemlich schwer, es herauszufinden.

In Ihren speziellen Fällen gibt es keinen Unterschied zwischen der Verwendung von EOF und PETE , es gibt eine Beziehung zwischen dem heredoc-Marker (das Bit, das auf << folgt) und dem Ende der Standardeingabe.

Wenn beispielsweise eine Ihrer Eingabezeilen EOF war, konnten Sie diese nicht wirklich als Markierung verwenden, da die Standardeingabe vorzeitig abgebrochen würde:

%Vor%

In diesem Fall könnten Sie PETE (oder etwas anderes, das nicht im Text in einer eigenen Zeile erscheint) verwenden.

Es gibt andere Optionen wie die Verwendung von Anführungszeichen um den Marker (so dass der Einzug besser aussehen kann) und die Verwendung einfacher oder doppelter Anführungszeichen zur Steuerung der Variablensubstitution.

Wenn Sie auf die Seite perlop gehen und nach <<EOF suchen, wird es hoffentlich klar.

    
paxdiablo 14.08.2012 08:20
quelle
10

Siehe Zitat und Zitat-ähnliche Operatoren (es ist ziemlich gut erklärt) .

    
Vidul 14.08.2012 08:21
quelle

Tags und Links