package My::Package::Version; use strict; use vars qw(@ISA $VERSION @EXPORT); @ISA = qw(Exporter); $VERSION = 3.14; @EXPORT = qw($VERSION); sub import { # try to handle multiple levels of inheritance: my $i = 0; my $pkg = caller($i); while ($pkg && $pkg =~ m/^My::Package::/o && !defined ${"$pkg::VERSION"}) { __PACKAGE__->export_to_level($i+1); $pkg = caller(++$i); } } 1;