将数组的内容移动到散列中

时间:2014-06-07 00:19:44

标签: arrays perl hash

我的数组有lib1 ver1 lib2 ver2 lib3 ver3

我想将数组的内容分配给哈希,以便我的哈希值将lib1作为键,而ver1作为相应的值就像 lib1 => ver1 lib2 => ver2..So当我使用foreach打印内容时

foreach my $key (keys %hash) {
        print("Key is $key and value is $hash{$key}\n");

应该打印 key是lib1,值是ver1 key是lib2,value是ver2

1 个答案:

答案 0 :(得分:0)

查看您的原始帖子,如果您有

my $lib_version = 'lib1=ver1 lib2=ver2 lib3=ver3'

然后像这样拆分

my @array = split /=/, $lib_version

不会根据需要拆分它。你最终会得到

@array = ('lib1', 'ver1 lib2', 'ver2 lib3', 'ver3')

因为你只是在等于=的标志上分裂。

要在=上拆分两个,你可以写空白

my @array = split /[\s=]/, $lib_version

或更好

my @array = $lib_version =~ /[^=\s]+/g

之后,my %hash = @array将正常工作