我只是想要在不使用引用的情况下修改Perl子例程中的参数的概念.我在数组的情况下尝试了这个:
@H_502_7@
@H_502_7@
sub test { print "Trying to change ... \n"; $_[0] = "Third"; $_[1] = 100; } @a = ("First",1,"Second",2); print "Before change : @a \n"; test(@a); print "After change : @a \n";@H_502_7@输出: @H_502_7@
Before change : First 1 Second 2 Trying to change ... After change : Third 100 Second 2@H_502_7@换句话说,通过更改@_的值来更改数组的元素. @H_502_7@但是在哈希的情况下做同样的事情并没有给出预期的行为: @H_502_7@
sub test { print "Trying to change ... \n"; $_[0] = "Third"; $_[1] = 100; } %h = ("First" => 1,"Second" => 2); test(%h); foreach ( keys %h ) { print "$_\n"; }@H_502_7@输出: @H_502_7@
Trying to change ... Second First@H_502_7@为什么这两种情况有所不同?