1use strict; 2use warnings; 3use Test::More tests => 2; 4 5BEGIN { 6 package MyTie; 7 BEGIN { $INC{'MyTie.pm'} = 1 } 8 9 use Attribute::Handlers autotie => { '__CALLER__::Mine' => __PACKAGE__ }; 10 11 sub TIESCALAR { 12 my ($class, $data) = @_; 13 bless \$data, $class; 14 } 15 16 sub FETCH { ${$_[0]} } 17 sub STORE { ${$_[0]} = $_[1] } 18} 19 20use MyTie; 21 22eval q{ 23 my $var :Mine; 24 1; 25}; 26::is $@, '', 27 'attribute available in caller'; 28 29{ 30 package Pack2; 31 use MyTie; 32 33 eval q{ 34 my $var :Mine; 35 1; 36 }; 37 ::is $@, '', 38 'attribute available in caller of second package'; 39} 40