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

BEGIN {
	chdir 't' if -d 't';
	unshift @INC, '../blib/lib', '../lib';
}

use Test::More tests => 8;
require_ok( 'Acme::Pr0n' );

package Foo;
$INC{'Foo.pm'} = 1;
$VERSION = 0.20;

use vars qw( @EXPORT @EXPORT_OK $allowed $forbidden @array %hash $VERSION );

@EXPORT = qw( $allowed hash );
@EXPORT_OK = qw( array );

sub allowed { 14 }
$allowed = 11;
$forbidden = 12;
sub array {}
@array = ( 1 .. 4 );
%hash = ( foo => 'bar' );
sub hash { 'hash' }

package main;

Acme::Pr0n::import( 'Foo' );

isnt( $main::allowed, 11, 'import() should not import exported scalars' );
is( allowed(), 14, '... but should import subs of the same name' );
is( $main::forbidden, 12, '... and should import nonexported scalars' );
is( @main::array, 4, '... importing nonexported arrays' );
ok( ! __PACKAGE__->can( 'array'), '... but not exported subs of the same name');
is( $main::hash{foo}, 'bar', '... importing nonexported hashes' );
ok( ! __PACKAGE__->can( 'hash'), '... but not exported subs of the same name');

# now silence 'used only once' errors
$main::allowed = $main::forbidden;
@main::array = %main::hash = ();