VERSION's caller should also match given location
[p5sagit/Import-Into.git] / lib / Import / Into.pm
index 2234738..7ca9d0b 100644 (file)
@@ -4,12 +4,12 @@ use strict;
 use warnings FATAL => 'all';
 use Module::Runtime;
 
-our $VERSION = '1.002002'; # 1.2.2
+our $VERSION = '1.002004';
 
 sub _prelude {
   my $target = shift;
   my ($package, $file, $line, $level)
-    = ref $target         ? @{$target}{qw(package filename line)}
+    = ref $target         ? @{$target}{qw(package filename line level)}
     : $target =~ /[^0-9]/ ? ($target)
                           : (undef, undef, undef, $target);
   if (defined $level) {
@@ -25,9 +25,13 @@ sub _prelude {
 sub _make_action {
   my ($action, $target) = @_;
   my $version = ref $target && $target->{version};
-  my $ver_check = $version ? ', $version' : '';
   eval _prelude($target)
-    . qq{sub { Module::Runtime::use_module( shift$ver_check )->$action(\@_) }}
+    . q[sub {]
+    . q[  my $module = shift;]
+    . q[  Module::Runtime::require_module($module);]
+    . (ref $target && exists $target->{version} ? q[  $module->VERSION($version);] : q[])
+    . q[  $module->].$action.q[(@_);]
+    . q[}]
     or die "Failed to build action sub to ${action} for ${target}: $@";
 }