How do I switch back to using the native Perl command line debugger?
When the Perl Dev Kit is installed, the PDK's Graphical Debugger becomes the default debugger, replacing the console debugger included with your Perl distribution.
To disable the Graphical Debugger included with the Perl Dev Kit and use the console debugger instead, perform the following steps:
pdkdebug --queryto view the current mode.
pdkdebug --remoteto set the debug listener to local mode.
To disable the Graphical Debugger permanently, remove the PERL5DB key from HKEY_LOCAL_MACHINE\SOFTWARE\Perl and remove the PERLDB_OPTS system environment variable.
What do I need to deploy with my PerlNET component?
PerlNET components built with the
--freestanding option are not completely freestanding; you also need to deploy perl56.dll (or perl58.dll), perlnh.dll and perlrt.dll.
PerlNH60.dll can be found in the PDK bin directory (usually C:\Perl\bin directory or C:\Program Files\ActiveState Perl Dev Kit 6.0\bin.
PerlRT60.dll is more difficult to find because it is moved to the .NET Global Assembly Cache during installation of the PDK. Copy it out of the GAC by opening a DOS prompt and changing to the PerlRT60 directory:
This directory should contain only one subfolder. Use 'dir' to find the name. For example:
Copy the .dll from this folder like this:
Note: On Windows 2000 and NT systems, the WINDOWS directory will be called WINNT. With previous versions of the PDK, the DLL filenames do not contain a version numbers (i.e. PerlRT.dll and PerlNH.dll)
Will people be able to decompile the executables I've made with PerlApp?
PerlApp does provide a degree of code obfuscation. There is no trivial method to unwrap a PerlApp file.
Reverse Engineering any executable is possible if the attacker has control of the hardware. Critical copyrighted data and algorithms should be protected by a suitable legal agreement or not included in Perl code within a PerlApp file. If you are concerned about keeping important parts of your code secret, you may want to consider some additional measures, such as:
How do I stop console windows from popping up when i call commands in backticks?
Using perlapp's --gui option should hide normal perl command line output, but system commands called within backticks may still open command line windows. To suppress this, try adding the following block to your script:
This should work using ActivePerl version 632 or later.
I'm getting the error "Perl lib version () doesn't match
executable version ()". What's wrong?
If you recieve an error that looks like the following:
It's possible that you've installed a recent version of the PDK without first uninstalling the older version. This is not recommended.
To correct the problem:
How can I quickly switch between using the PDK Debugger and the command
Here is a batch file for manipulating the relevant environment variables:
Copy the code into a file called DBSET.BAT, and move it into a directory in your PATH (e.g. C:\Perl\bin).
To use perl's regular command line debugger:
C:\> DBSET CLI
To use the PDK Debugger:
C:\> DBSET PDK
Are you serious about programming in Perl? The Perl Dev Kit is a collection of useful tools that would benefit any Perl developer. Create stand-alone executables with PerlApp, debug Perl scripts locally or on a remote server with the graphical Debugger, improve code performance and reliability with PerlCov, or create complex text filters visually using Filter Builder.