At 1:18 AM -0700 7/18/07, Michael G Schwern wrote:
>Craig A. Berry wrote:
> >  However, it has so far proven beyond my Perl foo to
> > override CORE::GLOBAL::glob in terms of itself without either getting
>> infinite recursion or having whatever I do in
>> Module::Build::Platform::VMS ignored from within Module::Build::Base.
>
>FWIW, you avoid the infinite recursion by calling CORE::glob() instead of just
>glob().
>
>sub _fixed_glob {
>    ...
>    CORE::glob(...);
>    ...
>}
>
>BEGIN {
>    local *CORE::GLOBAL::glob = \&fixed_glob;
>}

Yeah, I did that (without the local) in one of the umpteen
permutations I tried.  Just tried the following again in
Module::Build::Platform::VMS and the override doesn't exist as far as
Module::Build::Base::_detildefy is concerned.  My current guess is
that it has something to do with the _interpose_module business in
Module::Build, which maybe doesn't set up the @ISA hierarchy until
run-time, or maybe it's just that Module::Build::Base is already
compiled before the platform stuff is invoked, so assigning to the
typeglob, even though it's in a BEGIN block, is too late.  But I'm
speculating without really knowing what I'm talking about.

---------------
sub _vms_glob_override {
    die "got here\n";
    return CORE::glob(@_);
}

BEGIN {
    *CORE::GLOBAL::glob = \&_vms_glob_override;
}
---------------

>
>> A number of the tests call is_deeply() to compare an array of
>> case-preserved filenames with another array of (by default)
>> non-case-preserved filenames. Obviously they don't match and the
>> tests fail.  What's needed is a like_deeply() or similar where you
>> can pass a regex qualifier such as "?i:" to wrap around each of the
>> comparisons.  So maybe I'll add that to MBTest one of these days.
>
>Would Test::Deep be useful here?

Looks like it might be.
-- 
________________________________________
Craig A. Berry
mailto:[EMAIL PROTECTED]

"... getting out of a sonnet is much more
 difficult than getting in."
                 Brad Leithauser

Reply via email to