# File test_v1.pm use strict; use warnings; package Foo; sub new { my $class = shift; bless { version => 1 }, $class; } sub version { my $self = shift; return $self->{version}; } package Foo::Bar; use parent -norequire, 'Foo'; 1; #### # File test_v2.pm use strict; use warnings; package Foo; sub new { my $class = shift; bless { version => 2 }, $class; } sub version { my $self = shift; return $self->{version}; } package Foo::Bar; use parent -norequire, 'Foo'; 1;