2010-02-08 81 views
1

如何在我的Perl代碼中創建一個事件處理程序來攔截所有基於文件/目錄/系統的調用,以便我可以以即時方式對輸入進行修改。perl用於處理字符串的IO事件處理程序

我的腳本中有很多IO訪問權限,並且我發現添加了手動代碼以避免繁瑣。

這可以不需要安裝第三方CPAN模塊?

回答

1

你可以嘗試服用aspect-oriented approach,但它確實需要安裝CPAN模塊Aspect

要捕獲調用特定的方法/函數,定義一個切入點(從看點POD取):

$pointcut = call qr/^Person::[gs]et_/; # defines a collection of events 

然後定義代碼來接電話前:

$before = before { 
    print "g/set will soon be called"; 
} $pointcut; 

雖然我不確定Aspect模塊是否允許您將調用捕獲到CORE :: *名稱空間。

1

對於不熟悉的一般數據有何期待?如果你只是盲目地接受一切,儘管它的源頭,使用污點檢查沒有意義。

您可能想要閱讀Mastering Perl中的「安全編程技巧」一章。我爲處理這類問題提供了很多建議。但是,任何好的建議都將針對特定的情況,而不是一般性的。

+0

我可以通過一系列正則表達式和分支(if/else/case)等來運行它。 – 2010-02-08 16:28:22

+0

雖然這會讓你回到起點。 – 2010-02-08 20:14:45