Perl è un linguaggio di scripting. È vecchio. È rispettato. È ovunque. Se hai mai visto uno script CGI che esegue un’applicazione web di base della fine degli anni ’90, stavi guardando Perl.
Fa bene due cose. Innanzitutto, sostituisce i file batch DOS e gli script della shell C. In secondo luogo, alimenta i server web. Questo è il contesto che conta adesso.
La buona notizia? Il codice sorgente è gratuito. Gli sviluppatori lo danno via. Puoi scaricare migliaia di script. Puoi studiarli. Puoi romperli.
La brutta notizia? Gran parte di quel codice è illeggibile. Perl incoraggia uno stile così criptico da rasentare l’offuscamento. Se non sai cosa stai facendo, non saprai cosa stai leggendo.
Questa guida presuppone che tu abbia già programmato. Se conosci C, sei avanti. In caso contrario, inizia da qui. Stiamo saltando la filosofia. Stiamo arrivando alla sintassi.
Far funzionare l’interprete
È necessario l’interprete Perl.
Se utilizzi UNIX, probabilmente è lì. Probabilità del 99,99%. Controlla il tuo terminale.
Se utilizzi Windows o Mac, vai al sito ufficiale. Scarica l’ultima versione. Installalo. Perl è gratuito. È open source. È in circolazione dal 1987. Non pensare troppo all’installazione.
Una volta installato, trova la directory DOCS. Viene fornito con il pacchetto. Scansionalo. Non leggere ancora ogni parola. È denso. È asciutto. Ma è accurato. Ne avrai bisogno in seguito, quando le nozioni di base smetteranno di avere senso.
Il tuo primo copione
Imposta il tuo percorso. Includere l’eseguibile Perl. Apri un editor di testo. Crea un file chiamato “test1.pl”.
Digita questo:
“perlo.”
print “Ciao mondo!\n”;
Vedrai “Hello World!” sullo schermo. Questo è straordinario. Questo è l’output standard.
Su UNIX, puoi aggiungere #!/usr/bin/perl alla prima riga. Quindi puoi semplicemente digitare ./test1.pl. Più pulito. Più veloce.
Il comando “print” viene restituito a stdout. Il \n è un avanzamento riga. Semplice.
Prova questo:
“perlo.”
print “Ciao\nMondo!\n”;
Ora vedi il testo letterale. \n rimane come \n. Nessuna interpretazione. Nessuna magia.
C’è anche il carattere delle virgolette inverse: `.
“perlo.”
print cmd /c dir ;
Richiede anche periodi come operatori di concatenazione:
“perlo.”
stampa ‘ciao’. “\N” . ‘mondo!’;
Le virgolette doppie interpretano gli escape. Le virgolette singole no.
Anche i numeri funzionano.
“perlo.”
$i = 5;
$j = $i + 5;
print $i, “\t”, $i + 1, “\t”, $j;
La stenografia esiste. .= funziona come +=.
“perlo.”
$a = “Ciao”;
$b = “Mondo\n”;
$a.= $b;
stampa $a;
Gli array sono indicizzati a zero. Come C. Come Java. Come Pitone.
La notazione “$#a” fornisce l’indice più alto. Non il conteggio. L’indice. Quindi se hai tre elementi, $#a è 2.
Hash
Gli hash iniziano con %. Sono coppie chiave-valore.
“perlo.”
%h = (‘cane’, ‘abbaia’, ‘gatto’, ‘miao’, ‘anguilla’, ‘zap’);
print “Il cane dice “, $h{‘dog’};
Cita il lato sinistro. Funziona come una virgola. Rende il codice leggibile. Usalo.
Perl è facile una volta che smetti di combattere la sintassi. Le basi sono semplici. Le cose avanzate sono dove le cose diventano strane. Attieniti al nocciolo della questione. Padroneggiare le variabili. Padroneggia le regole di citazione.
Il resto sono solo schemi. E cattive abitudini.
Se hai trascorso del tempo in C, la sintassi di Perl ti sembrerà familiare. Prende molto a prestito da quel lignaggio, ma allenta la presa sul rigore.
Fai un ciclo for. Sembra esattamente quello che ti aspetti:
“perlo.”
for ($i = 0; $i < 10; $i++) { print $i, "\n"; }
Le porte logiche seguono le stesse regole del C. Utilizzare && per “e”, || per “o” e ! per “non”.
Nota: Perl offre un secondo set di operatori di confronto per le stringhe. Mentre
==controlla l’uguaglianza numerica, “eq” controlla l’uguaglianza delle stringhe.
Gli operatori numerici rimangono standard:
– == (uguale)
– != (non uguale)
– <, <=, >, >=
Ma se hai a che fare con il testo, potresti preferire le alternative basate su parole:
– eq (uguale)
– ne (non uguale)
– lt (meno di)
– le (minore o uguale)
– gt (maggiore di)
– ge (maggiore o uguale)
Iterazione attraverso gli array
Il ciclo su una raccolta in Perl è pulito grazie a foreach. Assegna ogni elemento di un array a una variabile scalare uno per uno.
“perlo.”
@a = (‘cane’, ‘gatto’, ‘anguilla’);
per ogni $b (@a) {
print $b, “\n”;
}
Salta le parentesi graffe e il compilatore si lamenterà.
Scrittura di subroutine
Le funzioni in Perl vengono definite utilizzando la parola chiave sub.
Quando chiami una subroutine, tutti gli argomenti che le vengono passati vengono inseriti in un array speciale chiamato @_.
“perlo.”
spettacolo (‘gatto’, ‘cane’, ‘anguilla’);
spettacolo secondario {
for ($i = 0; $i <= $#; $i++) {
print $ [$i], “\n”;
}
}
Puoi anche chiamare una funzione esplicitamente utilizzando il simbolo &.
“perlo.”
&mostra(‘a’, ‘b’, ‘c’);
Ciò presuppone che l’input sia un intero valido. Se l’utente digita spazzatura, la logica si interrompe.
Per l’input a carattere singolo, utilizzare getc :
“perlo.”
$i = getc(STDIN);
L'”1″ alla fine indica che viene letto un solo carattere.
Ambiente e dati della riga di comando
Perl espone i dati di sistema attraverso variabili globali.
L’hash %ENV contiene tutte le variabili di ambiente. Ricorda, le chiavi devono essere in maiuscolo.
“perlo.”
print $ENV{‘PERCORSO’};
“`
Se devi accedere agli argomenti della riga di comando, guarda l’array @ARGV.
- “$ARGV[0]” è il primo argomento.
$ARGV[1]è il secondo.$#ARGVfornisce l’indice dell’ultimo argomento (conta meno uno).
Ciò semplifica la creazione di script che accettano input dinamici senza valori di hardcoding.
Perl è ancora rilevante?
È una domanda giusta. I programmatori usano ancora Perl? SÌ.
Perl è ancora utilizzato nel 2024? Sì, anche se il suo ruolo è cambiato. È un linguaggio di alto livello, di uso generale, interpretato e dinamico. Non domina i nuovi progetti web greenfield come potrebbero fare Python o Node.js.
Tuttavia, Perl rimane un punto di forza per l’amministrazione del sistema e la manutenzione legacy. Eccelle nell’elaborazione del testo e nello scripting rapido


































