J'écris ce code dans perl où je crée une clé unique et lui assigne une valeur.Référence trouvée où la liste de tailles égales est attendue
sub populate {
my $file = shift;
my %HoH = shift;
open(INFILE,$file);
.
.
.
$final_name = $prepend.$five;
$HoH{$final_name} = $seven;
}
Maintenant, je passe deux paramètres à un sous-programme qui id comme
&populate(\%abc,$file_1);
&populate(\%xyz,$file_2);
Pourquoi ne me donne une erreur comme ceci:
Reference found where even-sized list expected
Quelle que soit la documentation que vous lisez qui vous dit d'utiliser la forme à deux arguments de «ouvrir» est obsolète. Utilisez la forme à trois arguments: 'open my $ INFILE, '<', $ file'. (Et vérifier les erreurs.) –
mais $ fichier contient l'adresse de l'emplacement du fichier. – kunal
Je ne suis pas sûr de ce que vous voulez dire par là. '$ file' devrait contenir le * nom * du fichier. Les appels 'open (INFILE, $ file)' et 'open my $ INFILE, '<', $ file' sont presque équivalents, mais ce dernier est meilleur. 'perldoc -f open' pour plus d'informations. (Et vous manquez un '$' dans votre source, 'mon fichier = shift,' devrait être 'mon $ file = shift;'.) –