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

use strict;
use warnings;

use Test::More tests => 6;
use Test::Exception;

use lib 'lib';
use Morpheus -defaults => {
    "test/import/collision" => do {
        no strict;
        package Defaults;
        @x = (1, 2); %x = (a => "b");
        @y = (1,2,3); $y = "a";
        { x => \*x, y => \*y}
    },
};

is_deeply(scalar(eval(q#package X1; use Morpheus "test/import/collision" => [qw(@x)]; [@x]#)), [1,2], "@/% collision => @");
is_deeply(scalar(eval(q#package X2; use Morpheus "test/import/collision" => [qw(%x)]; return {%x}#)), {a=>"b"}, "@/% collision => %");
throws_ok(sub{ eval(q#package X3; use Morpheus "test/import/collision" => [qw($x)];#); die if $@}, qr/not defined/, "@/% collition => \$");

is_deeply(scalar(eval(q#package X4; use Morpheus "test/import/collision" => [qw(@y)]; [@y]#)), [1,2,3], "@/\$ collision => @");
is(scalar(eval(q#package X5; use Morpheus "test/import/collision" => [qw($y)]; $y#)), "a", "@/\$ collision => \$");
throws_ok(sub{ eval(q#package X6; use Morpheus "test/import/collision" => [qw(%y)];#); die if $@}, qr/not defined/, "@/\$ collision => %");