I might be an idiot, but

So I apologize in advance for my ignorance. (I’m a grad student in ethics, have little computer knowledge, but I can follow directions pretty damn well.) I did use MT years ago, back when a $20 donation was all it cost, but I hadn’t been online in a good long while… Today I downloaded the new MT 3.11, and I installed it (somewhat) successfully, at least enough so that I can get to the MT login screen and compose a post. But when I tried to post the very first entry, I get this message:

[quote]An error occurred:
Unmatched right curly bracket at extlib/DateTime/LocaleCatalog.pm line 26, within string syntax error at extlib/DateTime/LocaleCatalog.pm line 26, near “}” Compilation failed in require at extlib/DateTime/Locale.pm line 5. BEGIN failed–compilation aborted at extlib/DateTime/Locale.pm line 5. Compilation failed in require at extlib/DateTime.pm line 47. BEGIN failed–compilation aborted at extlib/DateTime.pm line 47. Compilation failed in require at lib/MT/Template/Context.pm line 1424. [/quote]
And, frankly, I have no clue where to start. Do you?

It’s very possible that some of the files are corrupted. This typically happens when you FTP files in the wrong mode (ASCII vs. Binary). Zip files, JPEGs, GIFs, etc. should be transferred in binary mode. Source code and configuration files like Perl, HTML, JavaScript, etc. should be transferred in ASCII mode.

Most FTP clients will do the right thing if you leave them in auto mode. However, auto mode usually means that they examine the file extension to know what to do. Some FTP clients are more clever about inspecting the file contents. Assuming you FTP’d the files one at a time, it’s possible your FTP client didn’t know what to do with a .pm file, and it transferred it in binary mode.

If you didn’t use my “MT on DreamHost” install instructions, redo your install by following them. While they are written for MT 2.65, I’ve been told they work fine for MT 3.11.

If you want to try to fix your existing install, you could use dos2unix from a Linux shell prompt on all the Perl files. This is a lot of work and is fairly error prone, but it should undo the damage caused by transferring Perl files in binary mode, assuming that is the problem in the first place.

While this sounds like an FTP problem, it is strange that some stuff, like the login code, worked.


It appears to be a syntax error. “unmatched curly” means somehow the source has ended up with more opening brackets than closing brackets, eg { block { block } or vice versa, eg { block } }

The file with this problem is extlib/DateTime/LocaleCatalog.pm at line 26. The other files mentioned just depend on the one before it. If A is broken, B is broken, if B is broken, C is broken and so on.

Apparently your copy of MT came with its own version of the DateTime module, and something is wrong with that copy. Perhaps getting it to use the DateTime module already installed would work, but I’m not familiar enough with MT to tell you how to do that off the top of my head.

:cool: Perl / MySQL / HTML+CSS