PDK discussion

Perl Dev Kit usage questions; Perl Dev Kit practices and project questions

Cross Compile not loading installed modules

I'm using the 9.3 version of the PDK with ActivePerl 5.16.3. The DBD::DB2 package is not part of that distribution so I used ppm to install it. When I compile for Windows (32 or 64 bit) the compile runs OK and the executable runs as expected. When I use PerlApp to cross compile for linux-x86-32 or linux-x86-64 I get an error Can't locate DBD\DB2.pm. The module search path does include the site\lib\DBD package. Why isn't the cross compiler finding the DB2 package?

Case mismatch between module and file name

Compile errors.

Komodo IDE, version 8.5.4, build 86985, platform win32-x86.
Built on Wed Aug 13 14:41:17 2014.

PerlApp 9.3.0 build 297998
Copyright (C) 1998-2014 ActiveState Software Inc. All rights reserved.
Commercial license for IT Licensing

This is perl 5, version 16, subversion 3 (v5.16.3) built for MSWin32-x86-multi-t hread (with 1 registered patch, see perl -V for more detail)

Copyright 1987-2012, Larry Wall

Binary build 1604 [298023] provided by ActiveState http://www.ActiveState.com Built Apr 14 2014 14:32:20

Packaging Wx


I'm using PDK 9.3 + ActivePerl 5.16 on both Windows (32-bit) and Linux (64-bit) and my question is what is the recommended way to package Wx applications using PerlApp?

Do we still need to do the Wx::Perl::Packager hackery to get the .dll/.so files included in the binary or does PerlApp have heuristics for that?

I am using Mark Dootson's Wx PPM repository and if I create a binary without Wx::Perl::Packager the Wx shared libraries are missing on runtime.


EXE missing module at runtime


I really don't know where to begin with in solving my problem. I generate EXE for distributing my GUI software. I use ActiveState. Everything is fine, the software is installed on many machines. BUT Some users have problems in running the EXE. I've done a test and I've discovered that the DOS prompt shows an error massage sayng a module (JSON) is missing! How can it be? On every other machine the SAME EXE is working fine, all machines are using the same operating system (Windows 8.1 64 bit). For know, I just compiled a version of the software without the JSON module...

Getting a "<path>\perl(ctrl, app, etc).exe is not recognized as a PDK tool error" PDK 9.3.

I am trying to use the latest PDK to convert PerlCOM scripts into individual dlls that I can use in the VB6 app I am debugging. I have ported this app over from another XP machine and have it at the same junction as I did in the previous machine. I also downloaded the latest PDK on the new XP machine, exactly like I did on the previous.

Now however, I am getting the above error when I try to open perlctrl-gui.exe. I tried this fix....https://community.activestate.com/tags/not-recognized-pdk-tool (even though it is a Windows 7 fix) but the error persists.

Problem implementing PerlCOM in VB6 application

I am writing the august and esteemed users of Perl to assist me in a troubling endeavor. I have a VB6 application that uses Perl scripting via PerlCOM. Being new to Perl, I have very little idea as to what is needed for this endeavor to succeed, but I will tell you what I have and what I have done.

The VB6 app is stalling on this line of code, giving the always lovely Error 429: ActiveX component can't create object:

Dim objPerlCOM as Object
Set objPerlCOM = CreateObject("PerlCOM.Script") <== Error occurs here.

Problem with perlapp and Email::Sender

I'm trying to create an executable to send mails by Email::Sender. The perl script works fine, but when I run the exe file I get an error:

Can't locate Email/Sender/Role/CommonSending.pm in @INC (@INC contains: C:\Users\torsten\AppData\Local\Temp\pdk-torsten-6936\ C:\Devel\DataNet\bin) at /<C:\Devel\DataNet\bin\mailtest2.exe>Module/Runtime.pm line 317.
BEGIN failed--compilation aborted at /<C:\Devel\DataNet\bin\mailtest2.exe>Email/Sender/Simple.pm line 23.
BEGIN failed--compilation aborted at mailtest2.pl line 4.

PertCtrl and problem generating interop dll for VB.Net

I have been using a PerlCtrl generated Dll for years in a VB program.
Its now time to move to 64bit windows. I have been studying the documentation for 2 weeks
but have hit a roadblock. I have converted my PM file to 64bit perl. and added

sub New {
return new NewControl64;

to the PM code.

Then I compile the DLL - with no errors.. I registered the DLL via regtlibv12.exe and then I have to run

Tblimp.exe as administrator on the file to get the interop.dll - which I should be able to use in the VB.net program.

No matter what, I get the errors.

What happens when PerlSvc calls exit()?

I'm seeing something odd when a PerlSvc .exe tries to exit().

I put a cluck() in some initialization code. The stack trace shows that initialization is being triggered... by exit. Somehow the call to exit has become a block eval that recycles the program. The PID does not change.

The heavily abridged stack trace:

_load_config at (obfuscated) line 677.
  _load_config() called at (obfuscated) line 68
  start() called at (obfuscated) line 163
  mainFcn() called at (obfuscated) line 396
  PerlSvc::Interactive() called at PerlSvc.pm line 99

perlApp Bug: $^X is relative patht ("perl") where it should be ablolute pathe ("c:..perl/bin/perl.exe"")

perlApp Bug: $^X is relative patht ("perl") where it should be ablolute pathe ("c:..perl/bin/perl.exe"")


print $^X;

The "perlApp generated exe" prints "perl", which should be "c:\Strawberry\perl\bin\perl.exe" or "c:\perl64\bin\perl.exe".

This is a bug.