[EMAIL PROTECTED] wrote:
> If I correctly read this message from Larry:
>   http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2000-04/msg00081.html
> we shouldn't be refusing to run INIT blocks just because a module was
> loaded with 'require', or because a string was eval()ed.
> 
> That was the most recent discussion of the issue I could find: have
> I missed a later refutation? If not, is this still desirable?
> 
> The current behaviour seems like an odd wart that substantially
> limits the usefulness of INIT blocks. I'm not sure whether an
> analogous fix is required for CHECK blocks, or what the impact of
> either change might be.

The CHECK blocks behaviour cannot be changed for compatibility
reasons (and because O.pm relies on them.) That is, they're run
at the end of the compilation of the main compilation unit, and
that's all.

The INIT blocks are strictly symmetrical to the CHECK blocks.
I'm not sure if anything currently relies on the not-so-intuitive
behaviour of init blocks.

I used to add this in perltodo :

  =head2 UNITCHECK

  Introduce a new special block, UNITCHECK, which is run at the end of a
  compilation unit (module, file, eval(STRING) block). This will correspond to
  the Perl 6 CHECK. Perl 5's CHECK cannot be changed or removed because the
  O.pm/B.pm backend framework depends on it.

That's not exactly the same thing as Larry's proposal on the mail you
linked to.

-- 
A system is nothing more than the subordination of all aspects of the universe
to any one such aspect.
    -- Borges

Reply via email to