我有一種情況,我有一個應用程序,它映射到我需要在zipfile中處理的目錄。映射很簡單:Perl中的哈希常量
CWA => "Financial",
PIP => "",
IFA => "IFA",
VDX => "Financial,
也就是說,如果該文件的名稱與CWA
開始,我知道我必須Munge時間目錄是Financial
下。如果文件名以IFA
開頭,我知道目錄名稱是IFA
。我想把它設置爲散列(很簡單),但是由於這些值並沒有真正改變,所以我想將這個key =>值映射設置爲散列常量。
我不相信這是可能的,所以我想做下一件好事。那會是什麼?或者,你可以設置一個哈希常量?
我想寫一個子程序,你傳遞一個參數,它返回正確的值。畢竟,常量本身就是這樣工作的,它確保了鍵和值之間的關係不會在整個程序中發生變化。
或者,我可以簡單地在我的程序開始處聲明key => value關係,並希望key => value對不會被某些東西修改。這樣會更容易閱讀,並且如果您必須修改,則更容易,因爲它位於我的源代碼的頂部。
實現key => value constant的最佳方式是什麼?
定義函數外的我的%映像,正上方(和該函數在調用代碼的單獨模塊中,以便隱藏我的變量)。這可以避免每次調用函數時不必要的重新初始化哈希。 – ijw 2010-12-06 19:53:23
這是一個很好的觀點。或者,在5.10+中,使用`state`,它提供了最好的隱藏,但仍然只初始化一次。 – hobbs 2010-12-06 20:28:37
第二個作品,但我不得不{{shift}。否則,它需要{shift}作爲索引本身。 – 2010-12-06 21:03:52