Apple has apologized for breaking Perl with its latest Mac OS X security update, saying it will distribute a solution to the problem with a future update.

In a post to the Apple support forums, Senior Apple programmer Edward Moy apologized for "the unforeseen problems that the 2009-001 security update has caused" with Perl.

Apple's Moy says the problem is due to the way Perl orders its module directory search path: the system Perl directory comes before site-specific directories (e.g. /System/Library/Perl/5.8.8). "This means that if you try to update a module in the system perl directory by installing it in a site-specific directory like you normally would any other perl module, the search path order would result in the old module being found first," he writes. "So, the only way to do this kind of update is to directly overwrite the module in the system perl directory."

In other words, using CPAN to update Perl modules tweaks the system directory, and if you've installed Apple's latest security update, this could cause a problem.

Some system Perl modules use both a Perl (.pm) file and a binary (.bundle) file. With many of these modules, Moy says, Apple's new security update installs the original versions of .bundle files (complete with security fixes) without updating their matching .pm files (security fixes were required). So, when a newer version .pm file tries to load an older version .bundle file installed by the 2009-001 security update, your get a failure.

At this point, the only solution is to reinstall the affected module. But Moy says Apple is hard at work on a broader fix, and the company intends to include such a fix with a future software update.