Perl/Istruzioni particolari su blocchi o etichette: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Ramac (discussione | contributi)
m cambio avanzamento a 75%
Riga 1:
{{Perl}}
 
Come anticipato precedentemente le '''etichette''' risultano particolarmente utili con le istruzioni particolari last, redo, next. Queste modificano l'esecuzione del programma "saltando" opportunamente all'interno di un blocco/etichetta.
 
In realtà queste non sono istruzioni ma parole chiave. La differenza verrà spiegata più avanti.
 
== Last ==
Line 8 ⟶ 9:
 
<source lang=perl>
last ; # usato un blocco
last <ETICHETTA>; # indica di uscire rispetto quale etichetta
</source>
 
Line 17 ⟶ 18:
 
<source lang=perl>
my $b = 15;
my $stop = 17;
ETICHETTA_TRE : while ( $b < 20 )
{
print " etichetta tre (b=$b)\n";
$b++;
if ( $stop == $b ) { last ETICHETTA_TRE; }
}
print "b=$b\n";
</source>
che produce:
Line 38 ⟶ 39:
 
<source lang=perl>
redo ; # usato un blocco
redo <ETICHETTA>; # indica su quale etichetta
</source>
 
Line 47 ⟶ 48:
 
<source lang=perl>
my $b = 15;
my $stop = 17;
my $ripetizioni=2;
ETICHETTA_TRE : while ( $b < 20 )
{
print "etichetta tre (b=$b , r=$ripetizioni)\n";
if ( $stop == $b and $ripetizioni > 0) { $ripetizioni--; redo ETICHETTA_TRE; }
$b++;
}
</source>
Line 72 ⟶ 73:
 
<source lang=perl>
next ; # usato un blocco
next <ETICHETTA>; # indica su quale etichetta
</source>
;NOTA:Dato che l'uscita prematura da un blocco avviene a seguito di una scelta , si consiglia di leggere quanto riguarda le [[Linguaggio Perl/Le istruzioni/Decisionali|decisionali]] e i [[Linguaggio Perl/Le istruzioni/I cicli|cicli]] per poter comprendere meglio gli esempi.
Line 80 ⟶ 81:
 
<source lang=perl>
my $b = 15;
my $b = 15;
my $stop = 17;
my $stop = 17;
my $ripetizioni=2;
 
ETICHETTA_TRE : while ( $b < 20 )
{
$b++;
{ if ( $stop < $b and $ripetizioni > 0) { $ripetizioni--; next ETICHETTA_TRE; }
print $b++; " etichetta tre (b=$b , r=$ripetizioni)\n";
}
if ( $stop < $b and $ripetizioni > 0) { $ripetizioni--; next ETICHETTA_TRE; }
</source>
print " etichetta tre (b=$b , r=$ripetizioni)\n";
}
</source>
che produce :
 
Line 98 ⟶ 99:
 
[[Categoria:Perl|Istruzioni particolari su BLOCCO o ETICHETTA]]
{{Avanzamento|75%|7 luglio 2008}}