我看到在堆棧溢出此代碼,它爲我工作。請解釋它。Perl語句結尾的@array是什麼意思?
my @amino_acids = $genetic_codes[8] =~ /[ACGT]/g;
join ',', map qq{"$_"}, @amino_acids;
$codons{$_}++ for @amino_acids;
什麼是for
在這段代碼的目的,我試圖尋找在perldocs文檔,但無法得到它的清晰畫面。還有什麼可以用來代替for
?
我看到在堆棧溢出此代碼,它爲我工作。請解釋它。Perl語句結尾的@array是什麼意思?
my @amino_acids = $genetic_codes[8] =~ /[ACGT]/g;
join ',', map qq{"$_"}, @amino_acids;
$codons{$_}++ for @amino_acids;
什麼是for
在這段代碼的目的,我試圖尋找在perldocs文檔,但無法得到它的清晰畫面。還有什麼可以用來代替for
?
它增加用於發生$genetic_codes[8]
特定氨基酸的次數在%codons
的值。
寫出手寫,最後一行是相當於
for my $acid (@amino_acids) {
$codons{$acid}++;
}
在語法範疇而言,for
在這種情況下是一個語句修飾,documented in perlsyn。
任何簡單語句可以任選地接着是單個改性劑,端接分號(或塊結束)之前。可能的修飾符是:
if EXPR unless EXPR while EXPR until EXPR for LIST foreach LIST when EXPR
...
的
for(each)
修飾符是一個迭代:一次執行語句列表中的每個項目(與$_
化名爲依次在每個項目)。print "Hello $_!\n" for qw(world Dolly nurse);
在Perl
foo for bar;
是寫一個短的方式:
for bar { foo; }
非常感謝你....... – Sandra 2013-02-27 18:38:18
感謝您與例如解釋,到現在我知道的Perl的基本語法,並瞭解循環結構,但從未用於一行這樣弄糊塗了。 – Sandra 2013-02-27 18:41:58
@Sandra不客氣。 Larry Wall借用另一種語言的Perl語句修飾符[BASIC-PLUS](https://en.wikipedia.org/wiki/BASIC-PLUS)。 – 2013-02-27 18:43:32