EPIC, PadWalker and OSX 10.6.6 issues

  • StefanDaGerman

    StefanDaGerman - 2011-02-02

    I have spent a couple of days now trying to get PadWalker to work in EPIC, so far unsuccessful. I am hoping somebody out there can help. Here's what I did:

    1) Installed EPIC into my existing Eclipse - no problems
    2) Used MacPorts to install P5-PadWalker using: ports install p5-padwalker. - No installation problems

    I then created a simple Perl script to test:

    #!/opt/local/bin/perl -w
    print "Checking...";
    require PadWalker;
    print eval { PadWalker->VERSION(0.08) }

    Running this from a Terminal session results in:

    $ ./checkpadwalker.pl 

    This suggests that PadWalker is properly located.

    Running the exact same script from within Eclipse, however, results in:

    Checking...Can't load '/opt/local/lib/perl5/vendor_perl/5.8.9/darwin-2level/auto/PadWalker/PadWalker.bundle' for module PadWalker: dlopen(/opt/local/lib/perl5/vendor_perl/5.8.9/darwin-2level/auto/PadWalker/PadWalker.bundle, 1): Symbol not found: _PL_DBsub
      Referenced from: /opt/local/lib/perl5/vendor_perl/5.8.9/darwin-2level/auto/PadWalker/PadWalker.bundle
      Expected in: dynamic lookup
     at /opt/local/lib/perl5/vendor_perl/5.8.9/darwin-2level/PadWalker.pm line 21
    Compilation failed in require at /Users/stefans/Documents/workspace/Restricted Shell/checkpadwalker.pl line 3.

    I've gotten myself finger-blisters from searching for an answer online, but couldn't come up with anything.

    What else can I try? I would really appreciate your input. Thanks much in advance!!

  • Jan Ploski

    Jan Ploski - 2011-02-02

    The difference between the working and non-working configuration is likely in the environment variables. So you should compare the values of environment variables while executing scripts in Eclipse to those while executing scripts in shell, e.g. run a script such as this one in both cases:

    use Data::Dumper; print Dumper(\%ENV);

    (or something a little smarter with sort to aid your comparisons)

    Then experiment with overriding values of environment variables in Eclipse to match the working configuration (the variables such as  LD_LIBRARY_PATH, PATH or anything with PERL in its name should be your focus).

  • StefanDaGerman

    StefanDaGerman - 2011-02-02

    Thanks very much for your response. I noticed some differences in the perl version variables, suggesting that Eclipse was using a different Perl version than my terminal session (probably a 32/64bit mixup, which would explain the DLL issues).

    I found this http://transfixedbutnotdead.com/2010/01/24/mac-os-x-snow-leopard-10-6-and-perl/ and changed the two property settings:
    defaults write com.apple.versioner.perl Prefer-32-Bit -bool yes
    defaults write com.apple.versioner.perl Version 5.8.9
    And voila!, the complaining stopped and PadWalker makes my life a whole lot easier now. :-)

    I am going to change the properties back to their defaults and instead create a wrapper script to start eclipse which sets the environment variables as mentioned in the link above.

    Woohooo, thanks again for responding!


Log in to post a comment.