2

次のような単純な 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=537361https://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

なんでそうなの?

4

1 に答える 1