#!./perl BEGIN { chdir 't' if -d 't'; unshift @INC, ('.', '../lib'); } # 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"; # bison says 'parse error' instead of 'syntax error', # various yaccs may or may not capitalize 'syntax'. print "# $@\nnot " unless $@ =~ /(syntax|parse) error/mi; print "ok ",$i++,"\n"; # successful require do_require "1"; print "# $@\nnot " if $@; print "ok ",$i++,"\n"; END { 1 while unlink 'bleah.pm'; } # ***interaction with pod (don't put any thing after here)*** =pod