次のような単純な Perl スクリプト testme.pl があるとします。
use strict;
use warnings;
sub testme {
return 1;
}
1;
そして、テストファイル testme.t は次のようになります:
use strict;
use warnings;
use Test::More;
require_ok('testing.pl');
ok(testme());
done_testing();
実行は期待どおりに動作しているようですが、 http://www.perlmonks.org/bare/?node_id=537361とhttps://stackoverflow.com/a/9134624/272387perl testme.t
の両方がパッケージ行を追加することを提案しているので、元のスクリプトは次のとおりです。
use strict;
use warnings;
package My::Testing;
sub testme {
return 1;
}
1;
テストは次のように失敗します。
Undefined subroutine &main::testme called at testing.t
なんでそうなの?