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
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
.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