[49] Come tratto/modifico ciascun elemento di un array?
Usate for/foreach:
for (@linee) {
s/pippo/pluto/; # cambia quella parola
y/XZ/XZ/; # scambia quelle lettere
}
Ecco un altro metodo; calcoliamo i volumi sferici:
for (@volumi = @raggi) { # @volumi ha parti cambiate
$_ **= 3;
$_ *= (4/3) * 3.14159; # questo calcolo diventera` una costante
}
che può essere fatto anche con map() che è fatto apposta per
trasformare una lista in un'altra:
@volumi = map {$_ **3 * (4/3) * 3.14159 } @raggi;
Se volete fare la stessa cosa per modificare i valori di un hash, potete
servirvi della funzione values. Con Perl 5.6 i valori non vengono copiati,
quindi se modificate $orbita (in questo caso), modificate il valore.
Prima di perl 5.6 values restituiva copie dei valori, dunque il codice
perl più vecchio spesso contiene costruzioni come
@orbite{keys %orbite} al posto di values %orbite quando l'hash
deve essere modificato.
Copyright (c) 1997, 1998, 1999, 2000, 2001 Tom Christiansen e Nathan
Torkington. Tutti i diritti riservati.
Questa documentazione è libera; puoi ridistribuirla e/o
modificarla secondo gli stessi termini applicati al Perl.
Indipendentemente dalle modalitè di distribuzione, tutti gli esempi di
codice in questo file sono rilasciati al pubblico dominio. Potete, e
siete incoraggiati a farlo, utilizzare il presente codice o qualunque
forma derivata da esso nei vostri programmi per divertimento o per profitto.
Un semplice commento nel codice che dia riconoscimento alle FAQ sarebbe cortese
ma non è obbligatorio.
mongers@perl.it è la lista ufficiale di Perl Mongers Italia per
porre quesiti di tipo tecnico, per rimanere aggiornato su meeting,
incontri, manifestazioni e novità su Perl.it. Iscriviti!