[英]Initializing global variable on Perl module (with BEGIN block) include
我正在嘗試從具有BEGIN
塊的Perl模塊初始化全局變量,但是我無法使其正常工作。
這是Perl模塊
Package A::B;
our $var;
BEGIN{
$var ||= "/some/default/path";
#create/access files/folders in $var
}
這是我的CGI腳本
use A::B;
$A::B::var = "/correct/path";
但是#error
返回了,因為$ var不是正確的路徑
在將正確的路徑分配給$var
之前,正在執行BEGIN
塊。 有沒有一種解決方法,而不必從BEGIN
塊中刪除代碼?
BEGIN { $A::B::var = "/correct/path" }
use A::B;
這個答案令我不滿意,但是考慮到您的A :: B是如何設計的,我想不出任何其他方式。 理想情況下,一個模塊不取決於使用它的人或使用頻率,但實際上該模塊只能使用一次。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.