in reply to Testing $^W
oris( $^W, 1, 'warnings are on' ); require ThirdPartyModule; ThirdPartyModule->import; is( $^W, 1, 'warnings are still on' );
This is because use executes at compile time, so if you write the naive version then the third party code executes before either of your tests.BEGIN{is( $^W, 1, 'warnings are on' )} use ThirdPartyModule; BEGIN{is( $^W, 1, 'warnings are still on' )}
It is likely to be less confusing to use the former version because otherwise these tests will run before other tests in your test suite.
|
|---|