Perl - Panoramica della sintassi

Perl prende in prestito la sintassi e i concetti da molti linguaggi: awk, sed, C, Bourne Shell, Smalltalk, Lisp e persino l'inglese. Tuttavia, ci sono alcune differenze nette tra le lingue. Questo capitolo è stato progettato per metterti rapidamente al passo con la sintassi che ci si aspetta da Perl.

Un programma Perl consiste in una sequenza di dichiarazioni e istruzioni, che vengono eseguite dall'alto verso il basso. Loop, subroutine e altre strutture di controllo consentono di spostarsi all'interno del codice. Ogni semplice istruzione deve terminare con un punto e virgola (;).

Perl è un linguaggio in formato libero: puoi formattarlo e indentarlo come preferisci. Lo spazio vuoto serve principalmente per separare i token, a differenza di linguaggi come Python dove è una parte importante della sintassi, o Fortran dove è immateriale.

Primo programma Perl

Programmazione in modalità interattiva

Puoi usare l'interprete Perl con -eopzione nella riga di comando, che consente di eseguire istruzioni Perl dalla riga di comando. Proviamo qualcosa a $ prompt come segue:

$perl -e 'print "Hello World\n"'

Questa esecuzione produrrà il seguente risultato:

Hello, world

Programmazione in modalità script

Supponendo che tu sia già su $ prompt, apriamo un file di testo hello.pl usando vi o vim editor e inseriamo le seguenti righe nel tuo file.

#!/usr/bin/perl

# This will print "Hello, World"
print "Hello, world\n";

Qui /usr/bin/perlè attuale il binario dell'interprete perl. Prima di eseguire lo script, assicurati di cambiare la modalità del file di script e di concedere il privilegio di esecuzione, generalmente un'impostazione di 0755 funziona perfettamente e infine esegui lo script sopra come segue:

$chmod 0755 hello.pl
$./hello.pl

Questa esecuzione produrrà il seguente risultato:

Hello, world

È possibile utilizzare le parentesi per gli argomenti delle funzioni o ometterle in base ai propri gusti personali. Sono richiesti solo occasionalmente per chiarire le questioni di precedenza. Le seguenti due affermazioni producono lo stesso risultato.

print("Hello, world\n");
print "Hello, world\n";

Estensione del file Perl

Uno script Perl può essere creato all'interno di qualsiasi normale programma di editor di testo semplice. Sono disponibili diversi programmi per ogni tipo di piattaforma. Ci sono molti programmi progettati per i programmatori disponibili per il download sul web.

Come convenzione Perl, un file Perl deve essere salvato con estensione .pl o .PL per essere riconosciuto come uno script Perl funzionante. I nomi dei file possono contenere numeri, simboli e lettere ma non devono contenere uno spazio. Usa un trattino basso (_) nelle posizioni degli spazi.

Commenti in Perl

I commenti in qualsiasi linguaggio di programmazione sono amici degli sviluppatori. I commenti possono essere utilizzati per rendere il programma facile da usare e vengono semplicemente ignorati dall'interprete senza influire sulla funzionalità del codice. Ad esempio, nel programma sopra, una riga che inizia con hash# è un commento.

Dicendo semplicemente che i commenti in Perl iniziano con un simbolo cancelletto e corrono fino alla fine della riga -

# This is a comment in perl

Le righe che iniziano con = vengono interpretate come l'inizio di una sezione di documentazione incorporata (pod) e tutte le righe successive fino al taglio successivo = vengono ignorate dal compilatore. Di seguito è riportato l'esempio:

#!/usr/bin/perl

# This is a single line comment
print "Hello, world\n";

=begin comment
This is all part of multiline comment.
You can use as many lines as you like
These comments will be ignored by the 
compiler until the next =cut is encountered.
=cut

Questo produrrà il seguente risultato:

Hello, world

Whitespaces in Perl

Un programma Perl non si preoccupa degli spazi bianchi. Il seguente programma funziona perfettamente -

#!/usr/bin/perl

print       "Hello, world\n";

Ma se gli spazi sono all'interno delle stringhe tra virgolette, verrebbero stampati così come sono. Ad esempio:

#!/usr/bin/perl

# This would print with a line break in the middle
print "Hello
          world\n";

Questo produrrà il seguente risultato:

Hello
          world

Tutti i tipi di spazi bianchi come spazi, tabulazioni, nuove righe, ecc. Sono equivalenti per l'interprete quando vengono utilizzati al di fuori delle virgolette. Una riga contenente solo spazi bianchi, possibilmente con un commento, è conosciuta come una riga vuota e Perl la ignora totalmente.

Virgolette singole e doppie in Perl

È possibile utilizzare virgolette doppie o virgolette singole attorno a stringhe letterali come segue:

#!/usr/bin/perl

print "Hello, world\n";
print 'Hello, world\n';

Questo produrrà il seguente risultato:

Hello, world
Hello, world\n$

C'è una differenza importante tra virgolette singole e doppie. Solo virgolette doppieinterpolatevariabili e caratteri speciali come le nuove righe \ n, mentre le virgolette singole non interpola alcuna variabile o carattere speciale. Controlla l'esempio seguente in cui stiamo usando $ a come variabile per memorizzare un valore e successivamente stamparlo -

#!/usr/bin/perl

$a = 10;
print "Value of a = $a\n";
print 'Value of a = $a\n';

Questo produrrà il seguente risultato:

Value of a = 10
Value of a = $a\n$

Documenti "qui"

È possibile memorizzare o stampare testo multilinea con grande comodità. Anche tu puoi usare le variabili all'interno del documento "qui". Di seguito è riportata una semplice sintassi, verificare attentamente che non vi siano spazi tra << e l'identificatore.

Un identificatore può essere una semplice parola o un testo citato come abbiamo usato EOF di seguito. Se l'identificatore è citato, il tipo di citazione che usi determina il trattamento del testo all'interno del here docoment, proprio come nelle normali citazioni. Un identificatore non quotato funziona come virgolette doppie.

#!/usr/bin/perl

$a = 10;
$var = <<"EOF";
This is the syntax for here document and it will continue
until it encounters a EOF in the first line.
This is case of double quote so variable value will be 
interpolated. For example value of a = $a
EOF
print "$var\n";

$var = <<'EOF';
This is case of single quote so variable value will be 
interpolated. For example value of a = $a
EOF
print "$var\n";

Questo produrrà il seguente risultato:

This is the syntax for here document and it will continue
until it encounters a EOF in the first line.
This is case of double quote so variable value will be
interpolated. For example value of a = 10

This is case of single quote so variable value will be
interpolated. For example value of a = $a

Caratteri in fuga

Perl utilizza il carattere barra rovesciata (\) per eseguire l'escape di qualsiasi tipo di carattere che potrebbe interferire con il nostro codice. Facciamo un esempio in cui vogliamo stampare virgolette doppie e $ segno -

#!/usr/bin/perl

$result = "This is \"number\"";
print "$result\n";
print "\$result\n";

Questo produrrà il seguente risultato:

This is "number"
$result

Identificatori Perl

Un identificatore Perl è un nome utilizzato per identificare una variabile, una funzione, una classe, un modulo o un altro oggetto. Un nome di variabile Perl inizia con $, @ o% seguito da zero o più lettere, trattini bassi e cifre (da 0 a 9).

Perl non consente caratteri di punteggiatura come @, $ e% all'interno degli identificatori. Perl è un filecase sensitivelinguaggio di programmazione. Così$Manpower e $manpower sono due identificatori differenti in Perl.