]> git.vpit.fr Git - perl/modules/Test-Valgrind.git/commitdiff
Search for the first file and fallback to the first module if there's not
authorVincent Pit <vince@profvince.com>
Tue, 9 Sep 2008 22:00:54 +0000 (00:00 +0200)
committerVincent Pit <vince@profvince.com>
Tue, 9 Sep 2008 22:00:54 +0000 (00:00 +0200)
lib/Test/Valgrind.pm

index eb9fcb402fb87df0f3e44e4620654e1d2f1d7202..e8925d86cdd19523f96a363bc09a446379a521f9 100644 (file)
@@ -114,14 +114,23 @@ sub import {
  croak 'Optional arguments must be passed as key => value pairs' if @_ % 2;
  my %args = @_;
  if (!defined $args{run} && !$run) {
-  my ($file, $next);
+  my ($file, $pm, $next);
   my $l = 0;
   while ($l < 1000) {
    $next = (caller $l++)[1];
    last unless defined $next;
-   $file = $next;
+   next unless $next ne '-e' and $next !~ /^\s*\(\s*eval\s*\d*\s*\)\s*$/
+                             and -f $next;
+   if ($next =~ /\.pm$/) {
+    $pm = $next;
+   } else {
+    $file = $next;
+   }
+  }
+  unless (defined $file) {
+   $file = $pm;
+   return unless defined $pm;
   }
-  return if not $file or $file eq '-e';
   my $callers = $args{callers};
   $callers = 12 unless defined $callers;
   $callers = int $callers;