Perl il messaggio di errore "Do you need to predeclare say?"

Per stampare la stringa nel linguaggio di programmazione Perl integrata funzione print. Ma oltre print ci sono ancora e say.

L'uso di say negli script

Se solo cercare di utilizzare say in Perl script, quello è un errore. Ecco un esempio di script di errore:

▶ Run
#!/usr/bin/perl

say 'Hello';

Se salvare il codice in un file script.pl ed eseguire perl script.pl, sullo schermo viene visualizzato un errore:

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.

Per utilizzare ancora say deve dire esplicitamente che vogliamo utilizzare questa feature lingua con l'aiuto di use feature qw(say);. Ecco il testo completo dello script che funziona:

▶ Run
#!/usr/bin/perl

use feature qw(say);

say 'Hello';

Il risultato del lavoro di uno script — sullo schermo viene visualizzato il testo Hello.

L'uso di say in однострочниках

Alcune attività molto utile per risolvere con l'aiuto Perl однострочников, quando tutto il testo del programma non si trovano in un file, e viene passato il valore del parametro -e nella riga di comando.

Ma se basta eseguire perl -e 'say "Hello"', sullo schermo viene visualizzato un errore:

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.

Per utilizzare say in однострочнике è possibile utilizzare allo stesso modo che per gli script: scrivere al prompt dei comandi perl -e 'use feature qw(say); say "Hello"'.

Ma è molto più comodo utilizzare l'opzione -E invece -e. L'opzione -E include tutte le caratteristiche della lingua, in modo che il lancio perl -E 'say "Hello"' visualizza prevista posto Hello.

Altri articoli