PDK discussion

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

perlapp - single exe-file

Is it possible to create single exe-file from perl project if main utility incluiding (by use,require) many other pl-files,ini-files and pm-files? Besides the utility using for Win32:API interactions few dll-files. The goal is to create single exe-file and to use only it on other computer.

Perl exe crashing with unexepected errors

I have a command line application written in perl. I generated the exe for the app using "PerlAPP". The application is being used by a C# application from where it gets spawned with the necessary arguments and runs in the background.

It is found that the application is crashing often with some unusual errors.
I am able to track couple of them:

1) Can't create C:\......\Local\Temp\.....\attributes.dll : Permission denied at Perlapp line 934 -- It may seem to be a permission issue but its not. Since its happening at times say 10 out 50 cases

PerlSvc/PerlApp: What do to about non-perl files

Today, it seems like more and more module maintainers are putting essential non-perl files in lib. These files are being accessed by modules via __FILE__.

Regardless of the philosophical position on whether the package maintainers are correct in doing so, it is seriously causing me a headache.

For example, take Mojolicious. Mojo::Util is a pretty important module. Yet, instead of using __DATA__, they have externalized the data to a file (ok, separating data from code, good design principle in theory), and opening the file via (ln 30):

PerlSvc: Not working on Win2008 R2?

I have a tool wrapped in PerlSvc -- using PDK 32 for Perl32, PDK 64 for Perl64.

Windows 2008 (32 binaries): OK
Windows 7 (32/64 binaries): OK
Windows 2008 R2 (32/64 binaries): Not OK

It must be an OS setting or something; on R2 when I run the binary from command line, the program starts fine. When running through service control manager (via mmc or net start), the following emits to Event Viewer:

Undefined subroutine &PerlSvc::Startup called at /PerlSvc.pm line 95.

So it must be an extract and/or use issue.

Use of uninitialized value in substr at /<x.exe>PerlApp/DATA.pm line 170


I am working with Perl 5.8.8 and I've purchased the PDK Version
'ActiveState Perl Dev Kit 9.2.1 Build 296433'.

All runs fine. I could create an executable. But when I start it, following
message appears:

'Use of uninitialized value in substr at /PerlApp/DATA.pm line 170'

As the program will be run by many users, the message will be confusing someones. To avoid
a lot of support-questions I would ask you, if somebody know what I can do to
oppress this message

Thanks a lot for your answer


multiple targets

can a perlapp support multiple targets?

perlapp --target linux-x86-32 --target windows-x86-32 --target windows-x86-64

so when specifying targets:

perlapp --target linux-x86-32

I get no error.. however when I specify targets:

perlapp --target linux-x86-32 --target windows-x86-32 --target windows-x86-64

I get error:

error: Can't locate Proc/Daemon.pm

Does anyone have any insight on this? I know the Proc::Daemon perl mod did not get installed in the activeperl for windows, so .... How do i get it installed?

Unpacking ActivePerl...done
Syncing target-site PPM database with .packlists...done
Downloading ActiveState Package Repository packlist....done

perlapp dropping privs

Is this supported?

file gets executed as root, app drops privileges to normal user, perlapp can no longer write to pdk-root directory. Can this be changed? is there an environment variable to set?

Binary no longer works

Have a development CentOS box that I've created a binary to run on another Linux box that did not have perl. All worked well up until recently. The runtime box was recently updated. It now has Perl 5.8.8 (non-activestae build) and some other pkg updates... but it is still basically the same OS (32bit CentOS 2.6.18).

Now when the binary is executed it reports libperl.so found at /usr/lib/perl5/... not an ActiveState binary.

the /tmp gets the pdk-xxxx/ dir with the libperl.so from the binary but never seems to be referenced.

VBS script converter

I would like to convert the code Sub Macro1 (seen below) to perl, but the converter is giving me the following error:

Errors in input.
Syntax error at or near line 11, column 27:
Selection.InsertBreak Type:=wdPageBreak

The code was generated by a macro I recorded thru Word 2010.

Sub Macro1()
' Macro1 Macro
ChangeFileOpenDirectory "C:\KenGraves\Project2\Input\"
Documents.Open FileName:="wps001.doc", ConfirmConversions:=False, ReadOnly _
:=False, AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate _