The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl

use perl5i::latest;

use lib 't/lib';
use Test::More;
use Test::perl5i;

is( ref($INC[-1]), 'CODE', "Sub is at end" );
push @INC => './.././';
ok( !ref($INC[-1]), "Something is after our sub." );

lives_ok {
    require Data::Dumper;
} "Require things that are installed works";

throws_ok {
    require Fake::Thing;
}
qr/Can't locate Fake\/Thing\.pm in your Perl library\./,
"Useful message";

is( ref($INC[-1]), 'CODE' , "sub at end" );

{
    package NoFile;
    sub foo { 42 }
}

lives_ok {
    package Foo;
    eval <<'    EOT' || die $@;
    use perl5i::2;
    use base 'NoFile';
    1;
    EOT
} "same file base";


{
    no perl5i::latest;

    throws_ok {
        require Fake::Thing;
    }
    qr/^Can't locate Fake\/Thing\.pm in \@INC/,
    "Special message turned off out of scope";
}

done_testing;