use warnings; use strict; BEGIN { package X; use me::inlined; # alternative: $INC{__PACKAGE__.'.pm'}=$0; use Exporter 'import'; our @EXPORT = qw/$Z/; our $Z = 'from '.__PACKAGE__; } BEGIN { package Y; use me::inlined; # alternative: $INC{__PACKAGE__.'.pm'}=$0; use Exporter 'import'; our @EXPORT = qw/$Z/; our $Z = 'from '.__PACKAGE__; } use X; use Y; print "$Z\n"; # prints "from Y"