时间:2021-05-22
一个转换程序,简单的把DNA序列中的A转变成T,第一种情况没有使用私有变量。
复制代码 代码如下:
#!/bin/perl
#下面是一段DNA序列
$DNA=ATTATATAT;#这里是我们的序列
$result=A_to_T($DNA);
print "I changed all $DNA A to T, and the we get the result $result\n\n";
sub A_to_T
{
my ($input)=@_;
$DNA=$input;#没有使用私有变量
$DNA=~s/A/T/g;
return $DNA;
}
结果如下:
F:\>perl\a.pl
I changed all TTTTTTTTT A to T, and the we get the result TTTTTTTTT
F:\>
这里我们发现$DNA的值变成了TTTTTTTTT,而不是以前ATTATATAT。这是因为在子程序中,我们使用了同样的$DNA 变量,而在子程序中它的值已经被改变了。所以输出的时候就是改变以后的值。
下面把子程序中的 $DNA 进行私有变量声明:
复制代码 代码如下:
#!/bin/perl
#下面是一段DNA序列
$DNA=ATTATATAT;
$result=A_to_T($DNA);
print "I changed all $DNA A to T, and the we get the result $result\n\n";
sub A_to_T
{
my ($input)=@_;
my $DNA=$input;
$DNA=~s/A/T/g;
return $DNA;
}
结果如下:
F:\>perl\a.pl
I changed all ATTATATAT A to T, and the we get the result TTTTTTTTT
F:\>
这样就正常了。
当然你可以说,在子程序中可以完全不用$DNA这一个变量,就如同下面一样:
复制代码 代码如下:
#!/bin/perl
#下面是一段DNA序列
$DNA=ATTATATAT;
$result=A_to_T($DNA);
print "I changed all $DNA A to T, and the we get the result $result\n\n";
sub A_to_T
{
my ($input)=@_;
$dna_to_change=$input;
$dna_to_change=~s/A/T/g;
return $dan_to_change;
}
得到的也是正常的结果:
F:\>perl\a.pl
I changed all ATTATATAT A to T, and the we get the result
F:\>
但是,没有人能够保证你不会一时糊涂,在子程序用了程序中的变量。或者当你第一次使用的时候,可以避免,当你过来几个月以后回过头再来使用的时候,就不能保证完全正确了,所以为了代码的通用性,还是在所有的子程序中使用my私有变量吧。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
用判断循环首来讲笑话的代码.版本2.程序集程序集1.子程序_启动子程序,整数型,,本子程序在程序启动后最先执行.局部变量想看次数,整数型.局部变量循环次数,整数
调用子程序返回的结果.版本2.程序集窗口程序集1.子程序_调用子程序按钮_被单击信息框(被调用的子程序(),64,“子程序返回的结果”,).子程序被调用的子程序
一、函数定义子程序即一段分离的代码,它可以使减少重复代码且程序易读.perl中,子程序可以出现在程序的任何地方.但一般放在程序的开始或结尾.复制代码代码如下:s
一、定义子程序即执行一个特殊任务的一段分离的代码,它可以使减少重复代码且使程序易读。PERL中,子程序可以出现在程序的任何地方。定义方法为:subsubrout
子程序数据传递应用代码.版本2.程序集窗口程序集1.子程序_显示按钮_被单击.局部变量整数变量1,整数型.局部变量整数变量2,整数型.局部变量小数变量1,小数型