看板 Perl 關於我們 聯絡資訊
不好意思XD 我又有個問題了 是這樣的 我有一串基因序列 儲存在 $seq 裡面 另外有兩個陣列: @start:[0, 593] @stop:[311, 599] 現在 我想要把 $seq 的第0個字母到第311個字母 以及第593個字母到第599個字母 這兩段序列挑出 以下是我的程式碼: $order=0; while ($order++, $order<=$#start) { $pre_island[$order]=substr($seq, ($start[$order]), ($stop[$order]-$start[order])); } print @pre_island; 一直只有 $pre_island[1] 跑出來 而 $pre_island[0] 一直沒有 在我把第一行的 $order=0 改成 $order=-1後, 兩個 pre-island就可以跑出來了 我一直找不出這個迴圈哪裡有錯誤 要怎麼樣才能讓 $order 正常地從 0 開始計算呢?? 拜託各位大大幫忙解答了 再次萬分感謝~~~XD -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.129.5
Andor:如果你不太懂++的話 最好還是不要用++ 08/29 18:41
Andor:原因就是$order第一次迴圈時++後就變成1了啊 08/29 18:42
Andor:另外如果沒理解錯的話 $stop[...]-$start[...]還要-1 08/29 18:44
Andor:$stop[...]-$start[這裡的$你也漏寫了order] 08/29 18:45
Andor:用 foreach $order (0..$#start) 會比較易讀和美觀 08/29 18:46
Andor:更perlish的方式是用map...這比較進階你現在不用管它 ^^ 08/29 18:47
Andor:sorry上面那個-1應該是+1 08/29 18:48
FEmessenger:瞭解了 真的是非常感謝您的指教(拜) thank u!! 08/29 19:06