Welcome, and thanks for downloading ActivePerl. This release corresponds to Perl version 5.6.1.
Please note that ActivePerl 600 series builds are NOT binary-compatible with the older 500 series builds. In particular, do not attempt to use extensions or PPM packages built for the 500 series builds with ActivePerl 600 series builds and vice versa. This build is binary compatible with previous 600 series builds.
Binaries for the following platforms are available:
For a granular list of the changes included in this release, see the ActivePerl Change Log.
The following list is a general summary of the known incompatibilities between the 5.6.1 source code release and earlier releases. Be sure to consider these very carefully before upgrading.
chr(1) . chr(2) . chr(3)
rather than as "1.2" . 3
.
rand()
may yield a different (but usually more random) sequence due
to internal changes.
Iterating over hashes may yield a different order than before due
to changes in the hashing function used.
The undef
operator raises an exception when applied to read-only
values.
The close-on-exec bit is now set on pipe and socket handles as well,
if you set $^F high enough.
"$$1"
always means "${$1}"
now, rather than $$ . "1"
(which
was deprecated in 5.004).
delete(), each(), values()
and \(%h) operate on aliases to values,
instead of on copies. You may need to copy the values explicitly
where needed.
vec()
will raise an exception if the BITS argument is not a
power-of-two integer.
not
followed by parentheses behaves like a list operator. This
allows grep not($_), @things
to work as expected, but also changes
not (1,2,3)[0]
to mean (not(1,2,3))[0]
instead of
not((1,2,3)[0])
.
The semantics of the bareword prototype (*) have changed to make it
possible to pass barewords, as in many builtins.
Bitwise operators on 64-bit platforms operate on the entire native
width rather than just the lower 32 bits. (You must mask off the
excess bits if you don't want them.)
More builtins taint their results due to higher security paranoia,
when perl is running under taint mode (enabled via the -T switch).
If you have a perl installation older than 5.005, note that 5.6.1
won't be binary compatible with it. You will need to recompile
all extensions when upgrading from installations older than 5.005.
(This only applies when building from the source code--ActivePerl
builds based on 5.6.1 are not binary compatible with builds based
on 5.005 and earlier.)
http://www.sunfreeware.com/
You can also get the source package for GNU tar from:
http://www.gnu.org/If you are upgrading from build 613, the default location for the ActivePerl installation when using the native installations on Unix (Red Hat RPM, Debian dpkg, or Solaris pkgadd) has changed. Build 613 and earlier installed ActivePerl at /usr/local/perl-5.6, whereas later builds are installed at /usr/local/ActivePerl-5.6. This one-time change avoids confusion with locally installed versions built from the sources, and also avoids installing on top of existing binary-incompatible installations. This build is not binary compatible with build 613 and earlier. If you installed any extensions containing XS code with build 613 or earlier builds (via PPM or otherwise), you will need to reinstall them again. The suidperl executable is not included in this package due to potential security issues. If you wish to use suidperl in your installation, we recommend building Perl from source. The source code for ActivePerl is available at: http://www.ActiveState.com
You can download a self extracting executable that contains MSVCRT.DLL from:
ftp://ftp.microsoft.com/softlib/mslfiles/msvcrt.exe
Save the file in a temporary directory and double click on it to extract the files. Follow the instructions in the ReadMe.txt file contained in the package in order to install the missing file.
Thefork()
emulation has known limitations. See perlfork for a
detailed summary. In particular, fork()
emulation will not work
correctly with extensions that are either not thread-safe, or maintain
internal state that cannot be cloned in the psuedo-child process. This
caveat currently applies to extensions such as Tk and Storable.
It seems that numerous people are being bitten by this error from the
ActivePerl MSI installer. The full text of the error message probably looks
something lke this:
Installer Information Internal Error 2744. PPM_CONFI, C:\perl\bin. "C:\Perl\bin\wPerl.exe" "C:\Perlbin\configPPM.pl" "C:\Perl\site\lib\ppm.xml" "D:\downloads\perl\\" "C:\Perl\site\lib\ppm.xml~"
The first thing to note is that you CANNOT install ActivePerl 5.6 over an older version of ActivePerl based on 5.005, such as build 522 or any 500 series build.
We have determined that one cause of this error message is due to other installations of Perl that may be pointed at by something in the environment.
Workaround
The sure-fire solution is to make absolutely certain that no other installations of Perl are on the target machine. Realizing that this is not always possible, you can follow these steps to ensure the other installations will not interfere.
1) Stop the ``Windows Installer'' service. This can be accomplished from the command prompt using the following command:
c:\> net stop "Windows Installer"
2) Temporarily remove or rename PERLLIB and PERL5LIB environment variables in the system environment.
3) Temporarily remove or rename the following registry values:
[\\HKEY_LOCAL_MACHINE\Software\Perl] lib = <directory> (REG_SV) [\\HKEY_LOCAL_MACHINE\Software\Perl] sitelib = <directory> (REG_SV) [\\HKEY_LOCAL_MACHINE\Software\Perl] lib-<PerlVersion> = <directory> (REG_SV) [\\HKEY_LOCAL_MACHINE\Software\Perl] sitelib-<PerlVersion> = <directory>(REG_SV)
4) Proceed with the installation.
Once the installation has completed successfully, the above actions may be undone although restoring the environment variables or the registry values may interfere with the proper operation of your new ActivePerl installation.
In order to perform all of the above steps, you will need to have Administrative privileges on the target machine. If you do not have the required privileges you should contact you Administrator.
Norton AntiVirus 2000 detects VBS.NewLove.A in the file ActivePerl-Winfaq12.html.Workaround
This is a false positive by Norton AntiVirus. ActivePerl-Winfaq12.html has been examined by hand, and it is likely that the following example code is what causes the false report.
<BLOCKQUOTE> <P><CODE>use strict;<BR> use Win32::OLE;<BR> use Win32::OLE::Const 'Microsoft Outlook';<BR> <BR> my $Outlook = Win32::OLE->new('Outlook.Application', 'Quit');<BR> my $ol = Win32::OLE::Const->Load($Outlook);<BR> <BR> my $namespace = $Outlook->GetNamespace("MAPI");<BR> my $Folder = $namespace->GetDefaultFolder(olFolderInbox);<BR> my $NewFolder = $Folder->Folders->Add("Test1");</CODE></P> </BLOCKQUOTE>
This can be tested by removing the above code from the ActivePerl-Winfaq12.html file and rescanning with Norton AntiVirus. Norton AntiVirus will no longer detect VBS.NewLove.A.
Symantec has been notified of this issue.
The following Microsoft knowledge base articles may be helpful in solving MSI problems:Q236597 - OFF2000: Error Message: The Installation Package Could Not Be Opened ... http://support.microsoft.com/support/kb/articles/Q236/5/97.ASP
Q224094 - OFF2000: Error Message: This Application Requires the Windows Installer to Run http://support.microsoft.com/support/kb/articles/Q224/0/94.ASP
Q247532 - Works 2000 Err Msg: Installer Terminated Prematurely http://support.microsoft.com/support/kb/articles/Q247/5/32.ASP
``Error 1303. The installer has insufficient privileges...'' Running Office Setup http://support.microsoft.com/support/kb/articles/Q228/6/58.ASP
Error Message: Error 1316 Running Setup for Admin Installation http://support.microsoft.com/support/kb/articles/Q228/5/92.ASP
Error 1327 Invalid Drive During Office Installation http://support.microsoft.com/support/kb/articles/Q217/6/66.ASP
On Windows 9x, the system must be rebooted for the PATH environment variable to take effect.On Windows 9x, the PATH environment variable settings are not removed after an uninstall.
The Perl distribution comes with extensive documentation. On Unix platforms, all the standard documentation is installed as man pages under the Perl install location. The location of the man pages may need to be added to the MANPATH environment variable in order to access them. For example, in the C shell:
% setenv MANPATH /usr/local/ActivePerl-5.6/man:$MANPATH
The documentation is installed in HTML format on all platforms. If ActivePerl was installed in /usr/local/ActivePerl-5.6 then the HTML documentation would be located in /usr/local/ActivePerl-5.6/html.
On Windows, the standard documentation along with Windows-specific Perl documentation is installed in HTML format, and is accessible from the ``Start'' menu.
Updated versions of the HTML documentation will always be available at the ActiveState website:
http://www.ActiveState.com/ActivePerl/
Please report any problems you encounter with this release at the following location:
http://bugs.ActiveState.com/ActivePerl/
If you do not have web access, reports can be also sent via email to ActivePerl-Bugs@ActiveState.com. Please be sure to include detailed information about the platform in your message.
As far as possible, please ensure that there is enough information in the report to reproduce the bug elsewhere. It also helps to submit a minimal test case that exhibits the bug.