2008/6/3 David Golden <xdaveg@gmail.com>: > I was a little surprised to find that -M switches in PERL5OPT get > processed after any -M options on the command line. (Whereas -I > options in PERL5OPT are processed earlier as expected.) [...] > The implication is that one can't (shouldn't) use modules in PERL5OPT > to manipulate @INC or override how modules are loaded. Among > practical applications, that would seem to rule out the CPAN::PERL5INC > trick to replace $ENV{PERL5LIB} munging with a module loaded from > PERL5OPT. (Which was intended to avoid having PERL5LIB clipped by OS > limitations.) > > If this is intentional behavior, then it would be good to document it > in perlrun. If it's not intentional, should it be fixed? Or is > fixing it likely to break other things? I think it's intentional, because the traditional behaviour is to have command-line override environment. That can be interpreted in terms of precedence. I don't know whether anyone relies on that though. Note that parts of PERL5OPT take effect _before_ the command-line, for example -T: $ cat Foo.pm package Foo; print "<${^TAINT}>\n"; $ perl -MFoo -e1 <0> $ PERL5OPT=-T perl -I. -MFoo -e1 <1>Thread Previous | Thread Next