我試圖用代碼的任何進一步 這裏出發前,評估組環境變量是件:如何讓eval返回零而不是什麼?
for my $var qw(ENV_VAR1 ENV_VAR2 ENV_VAR3) {
my $value = eval '$ENV{"$var"}';
print "$var = $value\n";
die "$var not defined, exiting .." unless $value;
}
它會因打印行錯誤:
使用未初始化在 ./mycode.pl線205
在級聯(。)或字符串值,這是否意味着eval
其實不是返回興?如何讓它歸零或者可以用更好的方式完成整件事?
奇怪的是,如果我定義並取消定義底層ksh中的變量(例如export ENV_VAR1=anything;export ENV_VAR1=;
),那麼它會正確地停止並顯示正確的消息,但它會給我另一個uninitialized value
作爲下一個變量。
取代'我$值= EVAL「$ ENV {‘$ VAR’}」',你爲什麼不只是寫我的' $ value = $ ENV {$ var}'? – Borodin
它不展開$ var –
嗯..你是對的,它好像在某些時候代碼拒絕展開$ var ..所以我用eval –