把這個簡單的測試案例:爲什麼不Scalar :: Util和Test ::大多數玩的很好?
#!/usr/bin/env perl
use Test::Most;
use Scalar::Util qw(reftype);
ok(1, 'foo');
done_testing();
運行這個測試給了我下面的輸出:
原型不匹配:子主:: RefType的:在/用戶無VS($)/奧拉夫/ perl5的/ perlbrew/perls/perl-5.16.2/lib/site_perl/5.16.2/Exporter.pm line 66.
有兩種方法可以擺脫此警告。
- 我可以使用測試::更多,而不是測試::熱門
- 我可以使用測試::熱門,但沒有明確導入RefType的
我確定與調用標量::的Util :: reftype(甚至使用另一個模塊),但我在調試這個問題時尋求一些幫助,以便我可以提交適當的錯誤報告,因爲我不確定警告的根源在哪裏。
感謝您的支持!使用第二個選項,我得到了「* reftype}的模糊使用,解析爲* reftype」。把它改成BEGIN {* reftype =''}的訣竅。我實際上看不到Test :: Most正在輸出reftype,但這回答了我的直接問題。 – oalders
作爲此腳註,perl -MDevel :: Peek -MTest :: Most -e'Dump(\&reftype)'告訴我罪魁禍首是Test :: Deep – oalders
它從'Test :: Deep'輸出,它動態地從'%Test :: Deep :: constructors'(包含'RefType')的鍵創建一系列構造方法。 – mob