in reply to Re: File::Where->where_pm failure in forked children?
in thread File::Where->where_pm failure in forked children?

Good call. I created a local copy of Where.pm, removed the SelfLoader bits and the example code runs without fail.

Any ideas how to solve this, short of creating a modified version of File::Where?
  • Comment on Re^2: File::Where->where_pm failure in forked children?

Replies are listed 'Best First'.
Re^3: File::Where->where_pm failure in forked children?
by pheller (Initiate) on Mar 15, 2007 at 03:06 UTC
    Ok, I figured out a solution myself :-)
    #!perl use Parallel::ForkManager; use strict; use warnings; my $pm = new Parallel::ForkManager(2); for my $i (1 .. 3) { my $pid = $pm->start and next; my @ret = (); my $code = "use File::Where; \@ret = File::Where->where_pm(\"File::W +here\");"; eval $code; print $ret[0]."\n"; $pm->finish; } $pm->wait_all_children;
      my @ret = (); my $code = "use File::Where; \@ret = File::Where->where_pm(\"File::W +here\");"; eval $code;

      can be written more readably as:

      eval("use File::Where"); die($@) if $@; my @ret = File::Where->where_pm("File::Where");

      or

      require File::Where; import File::Where; my @ret = File::Where->where_pm("File::Where");

      These two snippets won't hide errors like yours did.