http://www.perlmonks.org?node_id=997663


in reply to DBIx::Class::Schema::Loader "compilation failed"

And guess what? It's specific to openSUSE 11.4 running Perl 5.12.3. I tried the fix suggested in the first comment, but that seemed to have no effect -- the same error remains.

Well, the file is missing, and it shouldn't be -- complain to your vendor

  • Comment on Re: DBIx::Class::Schema::Loader "compilation failed"

Replies are listed 'Best First'.
Re^2: DBIx::Class::Schema::Loader "compilation failed"
by thomas895 (Deacon) on Oct 07, 2012 at 18:47 UTC

    complain to your vendor
    It's not specific to the openSUSE package, though. The same error occurs when installing from the CPAN.

    I tried to reinstall the Unicode::UCD module, but then CPAN seems to want to install Perl 5.17.4 as well. I agree that the latest version of Perl may solve this and other issues, but I feel as if that is just avoiding this situation, allowing it to happen again in the future. Besides, replacing the system Perl is never a good idea.
    MSWin32 with 5.12.3 does not seem to have this issue.

    I am reluctant to just use PerlBrew to do this, as I'd have to reinstall most of the modules(and Catalyst seems to depend on half of CPAN, or it feels like that anyways) which took a long, long time.


    Does anyone have any other ideas on what to do?
    Many thanks :-)

    ~Thomas~
    confess( "I offer no guarantees on my code." );

      G'day thomas895,

      Firstly, I'll assume your use of CPAN actually refers to the utility cpan (lowercase) rather than the website CPAN (uppercase).

      Unicode::UCD is a builtin module (the link is to the 5.12.3 version). cpan will attempt to install the latest version of this module and, no doubt, finds it is dependent on the latest version of Perl (v5.17.4 at the time of writing); this would be why it's trying to install Perl v5.17.4 - at least, that's my best guess.

      Both Unicode::UCD and the file it can't find, UnicodeData.txt, were part of the Perl v5.12.3 distribution - they're listed in the MANIFEST. Given the code works fine with your MSWin32 installation, it's possible your openSUSE installation is corrupt; although, that's purely conjecture. I know nothing about openSUSE; I'll leave you to decide if reinstalling Perl v5.12.3 on that OS is a viable option.

      If you choose to use Perlbrew, this node may be of interest: perlbrew: moving to a new perl with all current modules

      -- Ken

        Thanks for the tip, and it turns out that my Perl installation was somehow corrupted. I did take a different approach, though.

        I downloaded the source RPM for Perl 5.12.3 from the openSUSE 11.4 repos, and cp -ur'd all of the files in the lib/unicore directory to my Perl's installation. Now that works, at least, and I reinstalled DBIx::Class::Schema::Loader for good measure. There were a bunch of warnings saying...

        Use of uninitialized value in string ne at /usr/lib/perl5/site_perl/5.12.3/DBIx/Class/Schema/Loader/Base.pm line 2951.

        ...which I got rid of by installing MooseX::MarkAsMethods and MooseX::NonMoose, and then all was well in the world...for now.


        I will keep your idea in mind for when I need to install a different Perl after all. Thanks everyone!
        ++ for you all.

        ~Thomas~
        confess( "I offer no guarantees on my code." );