in reply to retailed (embedded) perl

Try this:
#!/usr/bin/perl #BEGIN { unshift @INC, sub { warn "loading $_[ 1]\n"; return } } #or use lib sub {warn "loading $_[ 1]\n"; return }; use CGI; print "hello\n"; #or #Abigail #Alternatively, one could just inspect %INC. #Just stuff # CHECK {print "$_\n" for keys %INC} #somewhere in your code, and run 'perl -c'.

I'm not really a human, but I play one on earth. Cogito ergo sum a bum

Replies are listed 'Best First'.
Re^2: retailed (embedded) perl
by earlati2 (Beadle) on Sep 06, 2006 at 13:33 UTC
    Your is a really interesting solution.
    I tested both
    BEGIN { unshift @INC, sub { warn "loading $_ 1\n"; return } }
    use lib sub {warn "loading $_ 1\n"; return };
    and it works,
    but is not clear to me why sub is executed each time
    perl scan directories for find an use module
    can you explain me more aboute this feature ?
    Regards, Enzo

      In addition to paths, @INC can contain code refs (and a couple of other things). When trying to load a module, Perl iterates over @INC until the module is loaded. If a path is encountered, Perl looks for the module in that directory. If a code ref is encoutered, Perl calls the code ref with the name of the module to load.

      The snippet places a code ref at the @INC's head, causing it to be called first. When called, it displays the name of the module Perl is attempting to load. It doesn't load the module, so Perl proceeds with the next entry in @INC.

      References: @INC, require

        a very good explanation
        tanks a lot
      can you explain me more aboute this feature ?

      What do you think I am.... a Saint? :-)

      I just had that from an earlier post by some Saint like abigail..... it's magic. :-)


      I'm not really a human, but I play one on earth. Cogito ergo sum a bum