2012-06-25 64 views
4

Perl默認不具有struct的概念。我們需要導入結構類。我想知道爲什麼這樣?並且該語言提供的基本數據結構的組合是否應該補償這一點?perl中結構的替代方法是什麼?

+0

爲什麼?因爲我們perl用戶更喜歡使用模塊。這與C++用戶使用boost,Visual C用戶使用MFC等沒有區別。 –

回答

11

哈希函數在Perl中的結構與C中的結構(根據您使用它們的方式)幾乎完全相同。您也可以使用nest hashes來構建更復雜的數據結構。

+0

感謝您的鏈接。我去了你提供的文檔。但它看起來並不像我想要的那樣直觀,特別是考慮到可維護性。考慮到在一個項目中途移動到不同語言的邪惡罪行。 python似乎是在這一點上的平衡 – Laz

0

你可以試試這個模塊來替代結構 - Class::Struct

+4

如果我們用類代替結構體,那麼我們不如使用[Moose](http://moose.perl.org)。它具有更高級的功能,尤其是對於參數驗證。 – daxim

2

類::結構從來不適合C結構對我的角色。在我看來,C結構是一種已知的組織數據的內存結構,但對我來說,最好的辦法是將固定長度的輸入記錄自動分析到字段中,只需將它們寫入結構即可。

你可以做一些類似的解包。它仍然需要一個單獨的解析調用C不,但是如果您將它構建到您的記錄讀取中,它非常高效。

相關問題