是把 substr 切割結果放到 %hash 裡,不是弄成 @DB_a建議你把完整程式碼跟輸入的資料直接貼到 GitHub Gist
https://gist.github.com/ 方便更多其他板友也能回答這邊的概念是把 Perl 原生的 hash 型別來拿當作 set 用若存在一個 key 在某個 hash 容器中,key 肯定是唯一的舉例像 $hash{"ATCG"} = 1; 這就是字串 ATCG 當鍵值對應的資料可任意的指定,上述的例子是一個數字 1你在第一層迴圈時,我猜你會將輸入資料用 substr 切割因為你在第二層迴圈寫說要跟 substr 的結果做比較因此儲存到 %hash 的資料就會是那些 substr 的小片段由於 Perl 的 %hash 具備常數時間複雜度 O(1) 的能力在新增資料到 %hash 或者比較某個 key 是否在 %hash都是 O(1),進而使用"記憶體空間"來換取"CPU時間"