Skip to content

Instantly share code, notes, and snippets.

@rurban
Created August 2, 2012 17:17
Show Gist options
  • Save rurban/3238864 to your computer and use it in GitHub Desktop.
Save rurban/3238864 to your computer and use it in GitHub Desktop.
require-nul.pl
require-nul.pl:
#!perl
my $plugin = "Test::More\0Evil::Package";
{
no strict 'refs';
@{$plugin."::ISA"} = ('Test::More');
}
package main;
eval "require $plugin;" and print q(found);
warn $@ if $@;
print "$_\n" for keys %{"Test::"};
print "$_\n" for keys %{"Test::More\0Evil::"};
print "$_\n" for keys %INC;
---
$ perl5.10.1d-nt require-nul.pl
syntax error at (eval 1) line 1, at EOF
More::
MoreEvil::
Package::
strict.pm
$ perl5.14.2d-nt require-nul.pl
syntax error at (eval 1) line 1, at EOF
More::
MoreEvil::
Package::
strict.pm
$ perl5.16.0d require-nul.pl
syntax error at (eval 1) line 1, at EOF
More::
MoreEvil::
Package::
strict.pm
old (require "Test::More\0Evil::Package"):
./perl -Ilib require-nul.pl
Can't locate Test::More in @INC (@INC contains: lib /usr/local/lib/perl5/site_perl/5.17.3/x86_64-linux /usr/local/lib/perl5/site_perl/5.17.3 /usr/local/lib/perl5/5.17.3/x86_64-linux /usr/local/lib/perl5/5.17.3 /usr/local/lib/perl5/site_perl .) at require-nul.pl line 9.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment