Perl Fehlermeldung "Do you need to predeclare say?"

Um die Zeile auf dem Bildschirm in der Programmiersprache Perl verfügt über eine integrierte Funktion print. Aber darüber print gibt es noch say.

Verwendung say in Skripten

Wenn Sie nur versuchen, say im Perl-Skript, dann wird der Fehler. Hier ein Beispiel-Script mit dem Fehler:

▶ Run
#!/usr/bin/perl

say 'Hello';

Wenn der Code gespeichert in einer Datei script.pl und führen Sie perl script.pl, das auf dem Bildschirm erscheint ein Fehler:

String found where operator expected at script.pl line 3, near "say 'Hello'"
    (Do you need to predeclare say?)
syntax error at script.pl line 3, near "say 'Hello'"
Execution of script.pl aborted due to compilation errors.

Um dennoch die Vorteile der say muss eindeutig sagen, dass wir diese Funktion verwenden wollen, die Sprache mit Hilfe use feature qw(say);. Hier ist das vollständige Skript das funktioniert:

▶ Run
#!/usr/bin/perl

use feature qw(say);

say 'Hello';

Das Ergebnis des Skripts auf dem Bildschirm erscheint der Text Hello.

Verwendung say in однострочниках

Einige Aufgaben sind sehr bequem zu lösen mit Hilfe von Perl однострочников, wenn der gesamte Text des Programms sind nicht in der Datei, und wird der Wert des Parameters -e in der Befehlszeile.

Aber wenn Sie nur laufen perl -e 'say "Hello"', dann erscheint ein Fehler:

String found where operator expected at -e line 1, near "say "Hello""
    (Do you need to predeclare say?)
syntax error at -e line 1, near "say "Hello""
Execution of -e aborted due to compilation errors.

Um say in однострочнике können Sie dieselbe Methode wie für die Skripts: schreiben in der Befehlszeile perl -e 'use feature qw(say); say "Hello"'.

Aber es ist viel bequemer zu verwenden die Option -E statt -e. Option -E enthält alle Funktionen der Sprache, so dass der Start perl -E 'say "Hello"' zeigt die erwartete Zeile Hello.

Andere Artikel