Vai al contenuto

Perl/Applicare la teoria

Wikibooks, manuali e libri di testo liberi.
Indice del libro

Si sono viste finora tante nozioni, vediamo "nel poco possibile", cosa si può fare:

1) Creiamo un array con i giorni della settimana :

 
 @g_sett = ( "lun" , "mar" , "mer" , "gio" , "ven" , "Sab" , "Dom" );

oppure

 
 @g_sett = qw( lun mar mer gio ven Sab Dom );

2) Creiamo un hash usando l'array @g_sett con la corrispondenza giorni della settimana e numero del giorno: ( lun = 1 , Dom = 7 )

 for ( $a = 0 ; $a < @g_sett ; $a++ )
 {
     $giorno = $g_sett[$a];
     $h_gs_ng{$giorno} = $a+1;
 }

oppure

 $a = 1;
 foreach $g ( @g_sett )
 {
    $h_gs_ng{$g} = $a++;
 }

oppure

 @h_gs_ng(@g_sett) = ( 1 .. 7 );

3) Creiamo un Hash usando %h_gs_ng ma con i valori al posto delle chiavi e viceversa

 foreach $K ( keys %h_gs_ng )
 {
     $num = $g_sett_it{$K};
     
     $h_ng_gs{$num} = $K;
 }

4) Creiamo una stringa così formata "uno due tre quattro cinque sei sette"

 $str = "uno due tre quattro cinque sei sette ";

5) Dividiamo il contenuto il pezzi in modo da ottenere le parole separate:

 @num_a_lettere = split ( " " , $str );

6) Creiamo un altro hash dei giorni della settimana che abbia, al posto dei numeri, le stringhe che rappresentano i numeri:

NOTA : i giorni della settimana e i numeri sono "ordinati" e corrispondenti !

 for ( $a = 0 ; $a < @g_sett ; $a++ )
 {
     $giorno = $g_sett[$a];
     $num = $num_a_lettere[$a];
     $h_sett_lett_it{$giorno} = $num;
 }

7) Ora elenchiamo i giorni della settimana come nomegiorno , numero

 foreach $g ( @g_sett ) # Così sono ordinati da lun a Dom
 {
     print "giorno : $g , numero $h_sett_it{$g} \n";
 }

8) Ora facciamo la stessa cosa ma con i numeri "letterali" :

 foreach $g ( @g_sett ) # Così sono ordinati da lun a Dom
 {
     print "giorno : $g , numero $h_sett_lett_it{$g} \n";
 }

Se siete riusciti a seguire fino qui allora ... è ora di proseguire la lettura !