位置: 编程技术 - 正文
下面是一个例子:得到的结果如下: 在这个例子中,子程序中有两个参数@i和@j,当我们将这两个参数传递到子程序的时候,子程序将他们全部放入了内置数组@_中,然后在@_中@i和@j的不同没有了,也就是在@_中混为一谈了,无法区分。当我们想重新得到他们两个的时候,我们发现,@i=1 2 3 a b c,而@j为空。在很多时候这显然不是我们想要得到的结果,所以我们要用到pass by reference(在大骆驼书第六章中被翻译为”传入引用“)我们仅仅把代码做一个变动,也就是在程序如下:结果如下:我们可以观察最后的结果,在调用了子程序以后@i的值发生了变化:i=1 2 3 4 而j=b c。也就是说我们在子程序中对数组进行的push和shift操作在主程序中起了作用。为什么会出现这种情况呢?一般来说,我们在子程序中对变量进行了my声明,也就是只会在子程序中起作用,而不会改变主程序中的值。在这里由于引用的是真实的参数,也就是主程序中的值,而不是它的备份,所以会得到相应的改变。
推荐整理分享perl中子程序中参数的两种引用(传递)方式介绍(perl中\s+),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:perl终止程序,perl程序如何运行,perl中$_,perl中qw,perl fork子程序,perl fork子程序,perl 子程序数组参数,perl 子程序,内容如对您有帮助,希望把文章链接给更多的朋友!
perl 指定长度并生成一个随机的DNA序列的脚本代码 #!/bin/perlusestrict;usewarnings;#进行定义my@dna;my$dna_length;my$newbase;my$i=0;print"pleaseinputtheDNAlengthn";chomp($dna_length=);while($i$dna_length){#从四个碱基中随机选取一个my(@
perl生成特定碱基比例的随机序列的代码 方法一(不使用模块,byagonyr)#!/usr/bin/perl-wusestrict;my@seq=("A","T","C","G");my$length=;undefmy%hash;$hash{"A"}=int($length*0.3);$hash{"C"}=int($length*0.3);$hash{"G"}=int($length
求婚示爱的Perl代码之注释篇 原始代码代码出处:
标签: perl中\s+
本文链接地址:https://www.jiuchutong.com/biancheng/372539.html 转载请保留说明!友情链接: 武汉网站建设