我的数组有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
答案 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
将正常工作