本文和大家重点讨论一下Perl子程序参数的用法,Perl子程序参数是数组或哈希表时,函数中获得这些参数值的方式和一般的标量变量是不同的。
石门网站建设公司创新互联,石门网站设计制作,有大型网站制作公司丰富经验。已为石门上千多家提供企业网站建设服务。企业网站搭建\成都外贸网站制作要多少钱,请找那个售后服务好的石门做网站的公司定做!
Perl子程序参数是数组或哈希表时的问题
Perl子程序参数是数组或哈希表时,函数中获得这些参数值的方式和一般的标量变量是不同的。
Perl代码
- #!/usr/bin/perl
- usestrict;
- usewarnings;
- subfunc{
- print"@_\n";
- }
- my$id=1;
- my@info=('PHPfans','phpfans.net');
- my%info=("name"=>"PHPfans","url"=>"phpfans.net");
- func($id,@info);
- [root@PHPfansperl]#perlsub.pl
- 1PHPfansphpfans.net
发现第一个参数和第二个参数合并成一个大数组了。Perl子程序参数如果是哈希表的话还会将键值也保存在@_数组中。问题是怎么将各个参数分出来。这里第一个是标量变量,还可以用shift获取,然后剩下的就是第二个参数。但如果两个都是数组变量的话,这种方法显然就不行。这就要用到引用的方式传递。引用和C的指针是一致的,就是某值的地址。Perl的引用和PHP又不太相同,Perl是用反斜线(\)操作符
Perl代码
- #!/usr/bin/perl
- usestrict;
- usewarnings;
- subfunc{
- print"@_\n";
- }
- my$id=1;
- my@info=('PHPfans','phpfans.net');
- my%info=("name"=>"PHPfans","url"=>"phpfans.net");
- func($id,\@info);
- [root@PHPfansperl]#perlsub.pl
- 1ARRAY(0x81f0e24)
现在是要从该引用得倒改数组的值。如果$pointer的值为一个数组的指针,则通过形式@$pointer来访问数组中的元素。类似的,哈希表为%$pointer。
Perl代码
- #!/usr/bin/perl
- usestrict;
- usewarnings;
- subfunc{
- my($id,$info)=@_;
- my@info=@$info;
- print"@info\n";
- }
- my$id=1;
- my@info=('PHPfans','phpfans.net');
- my%info=("name"=>"PHPfans","url"=>"phpfans.net");
- func($id,\@info);
- [root@PHPfansperl]#perlsub.pl
- PHPfansphpfans.net
【编辑推荐】
分享标题:Perl子程序参数问题解答
网站链接:http://www.shufengxianlan.com/qtweb/news29/243579.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联