PerlEx records runtime information in two places – to the Windows Event log, and
to the file PerlEx-Err-ClassAAAA-NNN.log, which is located in the
Perl\bin
directory.
When PerlEx encounters an error or other noteworthy event,
an entry is written in the Windows NT Event log file (please refer to your
Windows NT/2000 documentation for information regarding the Windows NT/2000
Event log). This entry will only indicate that an error has occurred. To find
more detailed information regarding what actually happened, it may be helpful to
look at the PerlEx log files. The verbosity of the information written to the
PerlEx log files is set through the
Trace
Registry entry.
PerlEx log file names are of the form PerlEx-Err-ClassAAAA-NNN.log, where NNN is the interpreter number and ClassAAA is the class name associated with that interpreter. Log files for interpreters in the Default Interpreter Class are of the form PerlEx-Err-NNN.log. These log files may be found in the location identified by the LogPath registry entry, or if that is not set, in the same directory as PerlEx.dll.
Each interpreter is assigned a unique number when it is created. These numbers begin at 0, and are numbered sequentially across all Interpreter Classes.
All messages sent to PerlEx log files have the form:
*** <script name> log message at: YYYY/MM/DD/HH:MM:SS
<script name> is present only if the script generating the message is not a precompiler script.
PerlEx.dll attached by process; ID: <number>
<number>
is the process ID of the application that loaded
or unloaded PerlEx.
Script error(s) from PerlEx.dll logged in: <path>/PerlEx-Err-ClassAAAA-NNN.log
Anything written to STDERR will be logged in the file Perl\bin\PerlEx-Err-ClassAAAA-NNN.log
.
Problem: PerlEx.dll was unable to open PerlEx-Err-ClassAAAA-NNN.log
Cause: The file PerlEx-Err-ClassAAAA-NNN.log is missing or open by another application.
Problem: PerlEx.dll was unable to load <path>/<filename>.dll
or
Problem: HTTP/1.0 500 Server Error (A dynamic link library (DLL) initialization routine failed.)
Cause: A DLL file is either missing, or it resides in an incorrect directory or in a directory which is not mentioned in your PATH environment variable.
Problem: PerlEx: Exception during script initialization.
Cause: Perl was unable to evaluate your script. This message is reported in the Event log.
Problem: PerlEx: Exception during execution of script '<script name>'
Cause: Perl was unable to execute your script. This message is reported in the Event log.
Problem: PerlWSEX.dll was unable to load <path>/PerlWSEX.dll
Cause: The PerlWSEX.dll is missing or the path to it is incorrect.
Problem: PerlISEX.dll was unable to load <path>/PerlISEX.dll
Cause: The PerlISEX.dll is missing or the path to it is incorrect.
Problem: PerlNSEX.dll was unable to load <path>/PerlNSEx.dll
Cause: The PerlNSEX.dll is missing or the path to it is incorrect.
Problem: PerlEx.dll was unable to start sockets
Cause: The Windows Sockets DLL was unable to start. There are several possible causes for this: the underlying network subsystem is not ready for communication, your Windows Sockets DLL version is incorrect, Windows Sockets can not support any more tasks, or a blocking sockets operation is in progress.
Perl program errors are written to the file PerlEx-Err-ClassAAAA-NNN.log. Anything written to STDERR will be logged to this file. The Trace registry entry sets the amount of information recorded.
Any value for the Trace registry entry will give the following messages:
<script name> script produced no output
PerlEx: Parse failed in precompiler <script name>!
PerlEx: Parse exception in precompiler <script name>!
PerlEx: Unable to create a Perl space for precompiler <script name>!
No script was supplied to PerlEx.dll
The following messages occur when PerlEx was unable to get a free interpreter, or the Perl program was not precompiled:
PerlEx: Parse failed on script <script name>!
PerlEx: PerlCreate failed on script <script name>!
If you set Trace to 1, then PerlEx will add the following messages, should they occur:
PerlEx: Double exception!
PerlEx: Error return: <value>
Set the Trace registry entry to 4, and the following messages will be added, should they occur:
PerlEx: Loaded precompiler: <precompiler name>
PerlEx: Unloading at count of: <number>
PerlEx: Executing script: <script name>
PerlEx: Execute returned: <value>
The following messages occur when PerlEx was either unable to get a free interpreter or the Perl program was not precompiled:
PerlEx: Parsing script: <script name>
PerlEx: Executing script: <script name>
PerlEx: Execution returned: <value>