- 论坛徽章:
- 0
|
今天看了 《Intermediate Perl 2nd EDITION》 看到第四章Introduction to References的时候发现一个问题,
一下是英文版截图:(英文版第37页Doing the Same Task on Many Arrays那节)
这里是不是写错了?perl的子程序的默认传参机制是“引用传递”的。如果你要“按值传递”的,你需要显式的写 例如: my @params = @_;
上文说不会修改到原来的数组?
哥做了一个测试:
#!/usr/bin/per
use strict;
use warnings;
my @required = qw(preserver sunscreen water_bottle jacket);
change(@required );
sub change {
$_[0]=substr($_[0],3);
}
#输出是:server sunscreen water_bottle jacket
第一个元素被修改了!!!!!!
在perl之父Larry wall 写的《Programming Perl,4th.Edition》的第7章(英文版,318页,Tricks with Parameter Lists那节)说明perl的子程序默认是按引用传递的:
请大神指点迷津!!!!!!!!!!!!!! |
|