Risorse per webmaster

L A   C O M U N I T À   V I R T U A L E   I T A L I A N A   P E R   W E B   M A S T E R S

 
 
      Tecnologie
      HTML
      CSS
      DHTML
      FLASH
      ASP
      PHP
      JSP
      PERL
      XML
      SMIL
      WIRELESS
      PALMARI
      APACHE
      MYSQL
      PICOSQL
 
      Grafica
 
      Servizi
 
      Raccolte
 
      Recensioni
 
      Analisi
 
      Disclaimer

   Per tutti
 
  .: Magazine
  .: Editor
  .: Appunti
  .: Gratis
  .: Scripts
  .: Components
 
   Home page

Partner
Comunicati stampa
Proposte di viaggio
Prenotazione hotel
Prenota vacanze
Accessori palmari
Cerca alberghi
Guide turistiche

versione stampabile Mostra una versione adatta per la stampa  

Livello di difficoltà:Livello di difficoltà: alto  
Il Perl, acronimo di Pratical extraction and report language, è diventato tanto popolare in Rete perché è il linguaggio più utilizzato per la creazine di programmi Cgi residenti su server Http. Può essere sfruttato sia su Web servers Apache che Iis.
 

Variabili scalary ed array

Guida a Perl
In Perl, a differenza di quanto accade con altri linguaggi di programmazione, non è necessario dichiarare le variabili prima di utilizzarle; il simbolo ``$'' che le precede sta ad indicare che si tratta di variabili che possono accettare un unico valore, che potrà essere un numero, un singolo carattere o una stringa. Chiameremo questo tipo di variabili scalari, per distinguerle da altri tipi più complessi (variabili vettoriali).

L'interprete Perl, utilizzando le variabili nelle istruzioni del nostro programma, stabilirà dal contesto se queste devono essere utilizzate come variabili numeriche o come stringhe.

$nome = 'Marco'; stringa
$n = 3; numero intero
$x = 3.1415; numero razionale
$saluto = "Ciao $nome\n"; stringa con interpolazione
$giorno = `date`; comando
Tab. 3: Tipi di dato

Un array è una struttura dati che permette di accedere ad un set di variabili scalari direttamente attraverso un indice numerico; potremmo dire, in altri termini, che si tratta di una variabile a più componenti.

I nomi degli array in Perl sono preceduti dal simbolo ``@'' per distinguerli dalle variabili scalari. Le singole componenti del vettore (array) sono delle variabili scalari. Ad esempio l'istruzione

@frutta = ('mele', 'pere', 'banane', 'uva');

definisce l'array @frutta come un vettore a quattro componenti; per accedere alla singola componente si deve usare un indice numerico, come nel seguente esempio:

#!/usr/local/bin/perl
# script "frutta.pl"
@frutta = ('mele', 'pere', 'banane', 'uva');
print "un cesto pieno di $frutta[1].\n";

Il primo elemento di un vettore in Perl ha indice 0, quindi se un vettore ha n elementi, l'ultimo elemento ha indice n-1. Ad esempio lo script precedente fornisce il seguente risultato:

$ frutta.pl
un cesto pieno di pere.
$ _

Può essere interessante osservare come sia possibile utilizzare gli array nel trattamento di file di testo. A seconda dei casi, e soprattutto in funzione della dimensione del file da leggere, può essere opportuno leggere il file una riga per volta, assegnando la riga letta ad una variabile scalare, ovvero leggere il file per intero, assegnando ogni riga del file ad un elemento di un array di stringhe.

#!/usr/local/bin/perl
# leggi.pl
# legge i dati dallo standard input una riga per volta
# e li stampa
$i = 0;
while ($riga = <STDIN>) {
$i++;
print "$i) $riga";
}

#!/usr/local/bin/perl
# leggi_2.pl
# legge i dati dallo standard input per intero
# e poi li stampa
@riga = <STDIN>;
for ($i=0; $i<=$#riga; $i++) {
print "$i) $riga[$i]";
}

Nel primo esempio (leggi.pl) il file viene letto una riga alla volta ed immediatamente stampata; viene quindi fatto un uso limitato della memoria della macchina, ma non è possibile utilizzare in seguito le righe del file lette ai passi precedenti. Viceversa nel secondo esempio (leggi_2.pl) il file viene caricato in memoria per intero, assegnando ad ogni componente dell'array @riga una linea del file di testo; successivamente le linee vengono stampate (facendo uso della struttura di controllo for che introdurremo in seguito). In questo caso il programma può utilizzare in qualsiasi momento ogni linea del file, senza doverla rileggere; tuttavia se il file è di grosse dimensioni, viene fatto un uso pesante della memoria della macchina.

L'espressione ``$#riga'' fornisce l'indice dell'ultima componente dell'array @riga.

 

 
 
Home > perl > ...   © 1999-2017 Risorse.net, tutti i diritti riservati