是否可以在perl中将哈希值转换为数组但不使用其他变量? 这按预期工作,但使用另一个变量(@arr):
perl -wlae '%hash=(name=>"linus", forename=>"torvalds "); @arr=%hash; print "@arr"'
我尝试过这些但是没有用过(BTW他们做了什么?):
perl -wlae '%hash=(name=>"linus", forename=>"torvalds "); print "@hash"'
perl -wlae '%hash=(name=>"linus", forename=>"torvalds "); print "%@hash"'
perl -wlae '%hash=(name=>"linus", forename=>"torvalds "); print "@%hash"'
答案 0 :(得分:-2)
perl -wlae '%hash=(name=>"linus", forename=>"torvalds "); print (%hash);'
将表达式放在括号中会在列表上下文中对其进行求值,就像分配给列表变量一样。
在print
的情况下,这种转换是不必要的,因为它对数组和散列使用列表上下文。但是如果你想用散列做其他数组风格的东西,你可以使用它,例如
$first = (%hash)[0];
echo $first;