我有一個模塊(用於模板模塊處理)的Perl模塊存儲在文件末尾的__DATA__和__END__關鍵字之間。當試圖使用該模板生成文件時,生成的文件變空並且沒有警告或錯誤輸出。調試完成後,我發現DATA文件句柄在傳遞給模板模塊之前實際上是空的。Perl數據文件句柄在讀取時爲空
該模塊的以前版本能夠正確地從DATA中讀取模板,但是我所做的任何更改都不應該影響這部分代碼。這些變化包括邏輯變化完全獨立的功能和添加以下使用語句到模塊內:我試圖perl的模塊上加上寫入權限
use DBI;
use DBI::Const::GetInfoType;
use Switch;
(它最初只讀)併除去__END__關鍵字因爲我發現這不是必要的。不幸的是,DATA文件句柄仍然顯示爲空。
什麼樣的問題可能導致DATA文件句柄爲空,並且這些問題是否適用於我的情況?我正在使用Perl V5.12.5。
請注意,Debian stable中libswitch-perl軟件包的描述是這樣的:「這是一個爲了兼容性而提供的廢棄模塊,因爲它是從核心中移除的。對於perl 5.10及以上的'given' /'when '建築物更受青睞。「由於您使用的是v5.12,因此可用。 – david