Ho un semplice hash definito da qualche parte nel file principaleCome inserire hash in hash in Perl
our %translations = (
"phrase 1" => "translation 1",
# ... and so on
);
In un altro file che voglio aggiungere più traduzioni. Cioè, voglio fare qualcosa di simile:
push our %translations, (
"phrase N" => "blah-blah",
# ....
"phrase M" => "something",
);
Naturalmente questo codice non avrebbe funzionato: push
non funziona con gli hash. Quindi la mia domanda è: qual è un modo semplice ed elegante per inserire un hash di valori in un hash esistente?
non vorrei ricorrere a
$translations{"phrase N"} = "blah-blah";
# ....
$translations{"phrase M"} = "something";
dal momento che in Perl si suppone essere in grado di fare le cose senza troppe ripetizioni nel codice ...
Questo aiuta! Posso anche scriverlo come '@translations {keys% $ _} = valori $% _ per {" frase N "=>" blah-blah ", ...};' – Pasha
Questa sintassi non mi è venuta in mente, ma è una scorciatoia intelligente. Il ciclo rende probabilmente un pelo meno efficiente, ma dubito che la differenza sia misurabile. – cjm
beh, è un loop su un singolo elemento. Più un modo conveniente per assegnare l'hash anonimo alla variabile $ _. – Pasha