我正在努力理解如何设置哈希表——如果我理解“Perl 简介”一书以及网络上的各种建议等,我想这是我需要的。我必须阅读 .text/ csv 文件看起来像这样 - 分号和所有:
PRENOM;NOM;SEXE;AGE;PAYS;TITRE;GENRE
Cédrick;Matisse;m;25-45;Belgique;La peinture de l'amour;romance
Anne-Pascale;Ork;f;15-25;Belgique;La dernière halte des elfes;fantastique
Anne-Pascale;Ork;f;15-25;Belgique;La tentation du gobelin;fantastique
....它只是和提取。
我想 1) 我应该将所有这些放入一个哈希表中,以便阅读所要求的个人信息:性别、年龄、书籍类型。但是,我似乎无法理解如何将其加载到哈希表中——即使在阅读了各种帖子和“the”Perl 书之后。我一直在使用的代码如下所示:
use strict;
use warnings;
my $fichier = $ARGV[0]; # fichier source
open( DONNEES, '<', $fichier )
or die("Impossible d'ouvrir le fichier $fichier\n");
my %sexe = ( 'f' => 0, 'm' => 0);
my %age = ( '0-15' => 0, '15-25' => 0, '25-45' => 0, '45-65' => 0, '65-' => 0 );
my %genre = ( 'art' => 0, 'divers' => 0, 'education' => 0,
'essai' => 0, 'fantastique' => 0, 'informatique' => 0,
'pratique' => 0, 'roman' => 0, 'romance' =>0,
'sci-fi' => 0);
my $sexe = 0;
my $sexem = 0;
print "$fichier\n";
while ( my $ligne = <DONNEES> ) {
chomp($ligne);
# decoupage de chaque ligne du fichier en 6 colonnes
my ($prenom, $nom, $sexe, $age, $pays, $livre, $genre ) = split( /\t/, $ligne );
ETC .....
在处理已经放置了空格的文档时,使用数组似乎很容易,将它们放在一列中并阅读它们。但是,这里有更多信息。问题是
1) 如何让我的程序忽略文档的第一行 (PRENOM;NOM;etc)?
2)然后我如何才能将所需的项目空间和放置到正确的哈希表中?程序用分号读取整行是问题之一吗?
我没有再包括任何内容,因为这是一门课的作业,这意味着我必须自己解决剩下的问题。在能够阅读上述各个元素之后,我的程序只需打印出有多少“女性”或“男性”,有多少阅读“浪漫”等。
最后,如果问题不清楚或者/并且我在叫错树,请不要犹豫,指出我正确的方向。