The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use warnings;
use Test::More;
use v5.10.1;

use App::Run;

our $VERSION = 3;

my $run = App::Run->new( App1->new );
is $run->version, 1, 'version from package without VERSION method';

$run = App::Run->new( App2->new );
is $run->version, 2, 'version from package with VERSION method';

$run = App::Run->new( sub { } );
is $run->version, 3, 'version from calller package';

done_testing;

package App1;
BEGIN { our $VERSION=1; };
sub new { bless {}, shift };
sub run { };

package App2;
our $VERSION=1;
sub new { bless {}, shift };
sub run { };
sub VERSION { 2 };