佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > perl子程序的運(yùn)用及子程序中變量私有(my)聲明的重要性

perl子程序的運(yùn)用及子程序中變量私有(my)聲明的重要性

熱門標(biāo)簽:企業(yè)做大做強(qiáng) 硅谷的囚徒呼叫中心 電話運(yùn)營中心 百度AI接口 呼叫中心市場需求 語音系統(tǒng) Win7旗艦版 客戶服務(wù)

一個轉(zhuǎn)換程序,簡單的把DNA序列中的A轉(zhuǎn)變成T,第一種情況沒有使用私有變量。

復(fù)制代碼 代碼如下:

#!/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; 
}

結(jié)果如下:
F:\&;perl\a.pl 
I changed all TTTTTTTTT A to T, and the we get the result TTTTTTTTT 

F:\&; 
這里我們發(fā)現(xiàn)$DNA的值變成了TTTTTTTTT,而不是以前ATTATATAT。這是因?yàn)樵谧映绦蛑校覀兪褂昧送瑯拥?DNA 變量,而在子程序中它的值已經(jīng)被改變了。所以輸出的時候就是改變以后的值。

下面把子程序中的 $DNA 進(jìn)行私有變量聲明:

復(fù)制代碼 代碼如下:

#!/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; 
}

結(jié)果如下:
F:\&;perl\a.pl 
I changed all ATTATATAT A to T, and the we get the result TTTTTTTTT

F:\&;

這樣就正常了。

當(dāng)然你可以說,在子程序中可以完全不用$DNA這一個變量,就如同下面一樣:

復(fù)制代碼 代碼如下:

#!/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; 
}

得到的也是正常的結(jié)果:
F:\&;perl\a.pl 
I changed all ATTATATAT A to T, and the we get the result 

F:\&;

但是,沒有人能夠保證你不會一時糊涂,在子程序用了程序中的變量?;蛘弋?dāng)你第一次使用的時候,可以避免,當(dāng)你過來幾個月以后回過頭再來使用的時候,就不能保證完全正確了,所以為了代碼的通用性,還是在所有的子程序中使用my私有變量吧。

標(biāo)簽:海南 濟(jì)南 山西 安康 喀什 長沙 崇左 山西

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《perl子程序的運(yùn)用及子程序中變量私有(my)聲明的重要性》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    筠连县| 平舆县| 高碑店市| 都江堰市| 富平县| 林芝县| 云梦县| 乳山市| 沙河市| 哈密市| 桑植县| 天气| 甘南县| 监利县| 苏尼特右旗| 酒泉市| 兰坪| 吉林市| 开江县| 西昌市| 易门县| 华宁县| 丰台区| 鸡泽县| 积石山| 渝北区| 胶州市| 沭阳县| 新绛县| 固安县| 理塘县| 上虞市| 柞水县| 胶南市| 霍城县| 竹山县| 河津市| 芦溪县| 平度市| 成武县| 大渡口区|