我目前有一个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)
有任何想法吗?我尝试过的一切都不起作用,我对哈希不太熟悉/经验......
提前致谢 :)
好的,所以我有一个看起来像这样的数组:
@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 /"并将其转换为由分号分隔的字符串.我怎样才能做到这一点?
谢谢!