Movable Type 3.11
I’m in the process of upgrading the software that runs my blogs from V1.65 to V3.11 of Movable Type.
So far I have run into only one problem with this process, a series of “prototype mismatch” errors when rebuilding blog index pages.
When performing a rebuild, the following messages are shown in the pop-up rebuild window:
Prototype mismatch: sub Params::Validate::validate_pos vs (\@@) at /.../extlib/Params/ValidatePP.pm line 139. Prototype mismatch: sub Params::Validate::validate vs (\@$) at /.../extlib/Params/ValidatePP.pm line 370.
This turns out to be due to the old version of Perl (5.005_03) that is running
on the machine that hosts the blog interacting badly with the version (0.73) of
the Perl Validate::Params
package that is bundled with Movable Type. The
machine is a Cobalt RaQ, and it is apparently not a bright idea to upgrade its
Perl beyond a certain point as it is used by parts of the adminstrative
GUI…
Updating the .pm
files for this package with those from the most recent
version doesn’t fix the problem, alas.
The solution I came up with was to remove the Validate::Params
files from the
Movable Type installation, and then install the current version (0.74) of
Validate::Params
to the machine globally. This seems to work because this way
of doing things installs a C language version of the package as well as the Perl
version. The release notes for version 0.74 of Validate::Params
refer to 0.74
as the the “I hate old Perls” release, so I guess this is specifically the
problem it is intended to fix. Unfortunately, the Perl version of the module
hasn’t changed in 0.74; the fix only seems to be in the compiled C version.
Obviously, I’ll have to remember not to upload new versions of this module with each new Movable Type release in the future.
I’ve the same problem, and your solution is work ! thanks a lot.
— mee7 on October 14, 2004