小编and*_*ejr的帖子

Perl数组的哈希和一些问题

我目前有一个csv文件,如下所示:

a,b
a,d
a,f
c,h
c,d
Run Code Online (Sandbox Code Playgroud)

所以我将这些保存到散列中,使得键"a"是带有"b,d,f"的数组,而键"c"是带有"h,d"的数组......这就是我用来做的那个:

while(<$fh>)
{
 chomp;
 my @row = split /,/;
 my $cat = shift @row;
 $category = $cat      if (!($cat eq $category))  ;
 push @{$hash{$category}}, @row;
}

close($fh);
Run Code Online (Sandbox Code Playgroud)

不确定效率,但似乎在我进行数据转储时有效...

现在,我遇到的问题是这个; 我想为每个键创建一个新文件,在每个文件中我想打印键中的每个元素,如下所示:

文件"a"看起来像这样:

b
d
f

<end of file>
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?我尝试过的一切都不起作用,我对哈希不太熟悉/经验......

提前致谢 :)

arrays perl hash

3
推荐指数
2
解决办法
80
查看次数

将数组转换为字符串

好的,所以我有一个看起来像这样的数组:

@foo = ("a","b","c","d");
Run Code Online (Sandbox Code Playgroud)

...以及存储在变量中的字符串:

my $foo = "e";
Run Code Online (Sandbox Code Playgroud)

我想把它变成一个看起来像这样的字符串:

"e/a;e/b;e/c;e/d"
Run Code Online (Sandbox Code Playgroud)

换句话说,我想在每个数组元素的开头添加"$ foo /"并将其转换为由分号分隔的字符串.我怎样才能做到这一点?

谢谢!

arrays perl

3
推荐指数
1
解决办法
114
查看次数

标签 统计

arrays ×2

perl ×2

hash ×1