2012-01-04 14 views
5

Per il seguente frammento di codice, la mia comprensione di $label = $classifier->{result}->{forcast}->[$i]->{label}; è corretta?Come analizzare questo hash di esempio di hash?

1) risultato è utilizzato come chiave per l'hash ref del classificatore;

2) forcast viene utilizzato come chiave per hash ref di $ classificatore -> {risultato}

3) $ classificatore -> {risultato} -> {forcast} è un ref a un array, ed io il valore -th di questo array è anche un riferimento hash

4) L'etichetta è la chiave dell'hash reference $ classifier -> {result} -> {forcast} -> [$ i]. Il valore corrispondente è assegnato alla parte sinistra di $ label.

my $i=0; 
while (<classifierinput>) 
{ 
    $label = $classifier->{result}->{forcast}->[$i]->{label}; 
    $i++; 
} 
+0

Come viene definito classifierinput? Cosa dovrebbe realizzare questo codice? – Dave

+0

La tua comprensione è corretta. Aggiungerò semplicemente che tra due serie consecutive di parentesi di indicizzazione (o array o hash), la freccia di dereferenziamento è facoltativa. Quindi il tuo esempio può essere scritto '$ classifier -> {result} {forcast} [$ i] {label}' (la prima freccia di dereferenziazione non è opzionale in quanto non si trova tra due serie di parentesi). –

risposta

2

Sì, la vostra comprensione è corretta.

Problemi correlati