51 lines
967 B
Perl
51 lines
967 B
Perl
|
#!./perl
|
||
|
|
||
|
BEGIN {
|
||
|
chdir 't' if -d 't';
|
||
|
@INC = ('.');
|
||
|
}
|
||
|
|
||
|
# don't make this lexical
|
||
|
$i = 1;
|
||
|
print "1..4\n";
|
||
|
|
||
|
sub do_require {
|
||
|
%INC = ();
|
||
|
write_file('bleah.pm',@_);
|
||
|
eval { require "bleah.pm" };
|
||
|
my @a; # magic guard for scope violations (must be first lexical in file)
|
||
|
}
|
||
|
|
||
|
sub write_file {
|
||
|
my $f = shift;
|
||
|
open(REQ,">$f") or die "Can't write '$f': $!";
|
||
|
print REQ @_;
|
||
|
close REQ;
|
||
|
}
|
||
|
|
||
|
# interaction with pod (see the eof)
|
||
|
write_file('bleah.pm', "print 'ok $i\n'; 1;\n");
|
||
|
require "bleah.pm";
|
||
|
$i++;
|
||
|
|
||
|
# run-time failure in require
|
||
|
do_require "0;\n";
|
||
|
print "# $@\nnot " unless $@ =~ /did not return a true/;
|
||
|
print "ok ",$i++,"\n";
|
||
|
|
||
|
# compile-time failure in require
|
||
|
do_require "1)\n";
|
||
|
print "# $@\nnot " unless $@ =~ /syntax error/i;
|
||
|
print "ok ",$i++,"\n";
|
||
|
|
||
|
# successful require
|
||
|
do_require "1";
|
||
|
print "# $@\nnot " if $@;
|
||
|
print "ok ",$i++,"\n";
|
||
|
|
||
|
END { unlink 'bleah.pm'; }
|
||
|
|
||
|
# ***interaction with pod (don't put any thing after here)***
|
||
|
|
||
|
=pod
|