The forthcoming release of XPP 8.2 will involve upgrading the Perl environment to 5.10 - a much anticipated step in some quarters I believe!
Upgrading from ActivePerl 5.8.x to 5.10.x requires that you start afresh by first deleting the old version of ActivePerl. The 5.10.x distribution will then give you a new, base set, of Perl modules.
This seems to raise two issues
- any modules that you installed after you installed 5.8.x will not be there any more (unless they are now in the 5.10.x distribution)
- any modules that were present in your 5.8.x setup may be in your new 5.10.x setup but the version number and the functionality may have changed.
TK::DialogBox
I found an example of the second scenario in that the behaviour of the TK::DialogBox module had changed between the 3.032 version we had been running with under 5.8.x and the new version, 4.015, that came with ActivePerl 5.10.x
The problem showed itself by dialog boxes not being displayed!
From a bit of searching it seems that there was a problem in that dialog boxes could get hidden beneath main windows and that in 4.x this was fixed but a side effect was that if a main window is withdrawn then so is the dialog box.
This particular DialogBox issue shouldn't be a problem for you if you have stuck to using the XyEnterprise supplied library of useful subroutines as supplied in
$ENV{'XYV_EXECS'}/procs/util/xyscript.pl
when building your Job, Division, and Site Tools.
However if you have coded up your own dialog boxes when building your Tools then you may experience the same issue that I did.
The simple cure seems to be to use a transient method on your dialog box object before doing a withdraw of a main window.
So, whereas before I had something like this:
... my $mainw = MainWindow->new; $mainw->withdraw; my $dialog = $mainw->DialogBox( ... ); ...
I now have:
...
my $mainw = MainWindow->new;
my $dialog = $mainw->DialogBox(
...
);
$dialog->transient('');
$mainw->withdraw;
...
I'd be pleased to hear about any other issues that you might be aware of in moving from 5.8.x to 5.10.x !

What tools are on your Swiss Army knife?
2 users commented on " Upgrading from ActivePerl 5.8 to 5.10 "
Follow-up comment rss or Leave a TrackbackPaul, et. all,
I also had some difficulty with the 8.1 to 8.2 upgrade but have worked through it on my servers and clients. Thanks to XySoft Support (Barry Stankiewicz)
The perl install portion is what threw me at first. But after finding that the install places a folder in $XYV_TMPS called packages, where you can load the Tk modules via the loadpkg.bat file, all was fine.
syntax: loadpkg.bat [your perl path] [load path]
cd $XYV_TMPS/packages
loadpkg.bat c:\per\bin .
One caveat we found was: if there was an existing packages directory in $XYV_TMPS from a previous install, the program did not overwrite it. So running the batch file would fail. At first it baffled us until we looked at the time stamps.
If you run into this, delete the packages directory from $XYV_TMPS and re-run the install program.
Other than having to manually install perl, there only real issue I had was the resizable command not working correctly.
I have some Tk menus that I do not want users resizing (there really is no need to resize).To overcome that, I just did the following:
I had:
my $mw = MainWindow->new;
$mw->minsize(qw(240 5));
$mw->resizable(0,0); # do not allow resizing the window
I achieve the same thing by by commenting out the resizable command and adding in the maxsize with the same height & depth – it works for me.
Changed to:
my $mw = MainWindow->new;
$mw->minsize(qw(240 5));
#$mw->resizable(0,0); # do not allow resizing the window
$mw->maxsize(qw(240 5));
If resizable is kept in it creates a window that is very tiny, unreadable, and cannot be resized unless it is minimized and then restored. Strange behaviour but with the minsize/maxsize I have a work-a-round
If anyone knows a way to make this work better, please let me know
Another possibly useful bit of information ….
When upgrading to XPP 8.2 you are instructed to uninstall ActivePerl.
If you are on a Windows system you might just get rid of all the ActivePerls listed in your “Control Panel-> Add or Remove Programs”
Doing that does stop Perl from running BUT it does leave your “C:\Perl” folder in place.
That seems to result in a set of 5.10 files being put on top of a set of 5.8 files – maybe not the best or the expected scenario.
Instead I renamed the C:\Perl folder before the 5.10 install and then added in the extra modules that I needed.