主页 > 知识库 > perl子程序的运用及子程序中变量私有(my)声明的重要性

perl子程序的运用及子程序中变量私有(my)声明的重要性

热门标签:智能机器人电销神器 电话机器人哪里有卖 万利达百货商场地图标注 惠州龙门400电话要怎么申请 外呼电信系统 okcc外呼系统怎么调速度 上海企业外呼系统 热门电销机器人 河南虚拟外呼系统公司

一个转换程序,简单的把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私有变量吧。

标签:淮安 秦皇岛 周口 百色 绵阳 周口 合肥 绥化

巨人网络通讯声明:本文标题《perl子程序的运用及子程序中变量私有(my)声明的重要性》,本文关键词  perl,子程序,的,运用,及,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《perl子程序的运用及子程序中变量私有(my)声明的重要性》相关的同类信息!
  • 本页收集关于perl子程序的运用及子程序中变量私有(my)声明的重要性的相关信息资讯供网民参考!
  • 推荐文章