我有一個子程序在第一次調用時工作,但第二次時,如果URL無效,它使用前一個值$1
。有沒有簡單的方法來休息$1
的值或等於NULL值?
編輯:這是我的代碼
our %hash;
sub GetOnce{
$mech->get($_[0]);
$val = $mech->content;
$val =~ /value="(.*?)"/;
if($1 ne "") {$hash{$_[1]} = $1;}
}
GetNonce("http://URL1", "VAR1"); #Valid URL
GetNonce("http://URL2", "VAR2"); #Timesout
我只是想重置錯誤處理的值。即如果URL1有效,但URL2無效或超時,那麼$1
對於它們都是相同的。如果URL1無效/超時並且URL2有效,則僅保存來自URL2的$ 1。如果它們都是有效的,那麼程序存儲它們的每個$ 1。
你不測試,如果你的對手是成功還是失敗? – tadman 2015-03-02 21:31:05
請寄一點樣品代碼。一般來說,如果你有正面的模式匹配結果,你只應該訪問1美元。 – daotoad 2015-03-02 21:35:13
通常你會這樣做:'如果m/foo(bar)/;'(用你操作'$ 1'的任何操作來代替'print'),打印$ 1 – ThisSuitIsBlackNot 2015-03-02 21:36:47