PDA

View Full Version : [perl] foreach, comportamento inaspettato


Daniels118
15-04-2015, 11:21
Salve a tutti,
premetto che conosco poco il perl, devo fare delle aggiunte ad uno script già esistente.
In una variabile @references ho una struttura dati di questo tipo:
[
{
'key1' => 'valore',
...
'keyN' => 'valore'
},
{...},
...
{...}
]
Ho scritto il seguente codice:
foreach my $reference (@references) {
print "ok\n";
}
Ora mi aspettavo di vedere in output tanti "ok" quanti erano gli elementi dell'array, invece ve ne è uno solo. Se aggiungo nel loop:
print Dumper($reference);
vedo che $reference contiene l'intero array invece di un singolo elemento.
Ho cercato in rete ma non ho trovato nessuno che avesse lo stesso problema, spero che sappiate darmi un aiuto.

Grazie in anticipo
Daniele

PS.
Se utilizzo il dollaro invece della chiocciola nella variabile references riesco ad accedere agli elementi con la sintassi
$references->[indice]
ma il loop continua a dare lo stesso problema.

Daniels118
15-04-2015, 11:58
Ho risolto, bisogna convertire il riferimento alla variabile nel tipo corretto, nel mio caso è bastato inizializzare @references wrappando il valore nell'espressione "@{...}".