in reply to How to instrust Perl to load the right modules based on architecture?
From perldoc lib:
For each directory in LIST (called $dir here) the lib module also checks to see if a directory called $dir/$archname/auto exists. If so the $dir/$archname directory is assumed to be a corresponding architecture specific directory and is added to @INC in front of $dir. lib.pm also checks if directories called $dir/$version and $dir/$version/$archname exist and adds these directories to @INC.
This means that:
$ perl -V:archname archname='i486-linux'; $ perl -V:version version='5.8.8'; $ perl -wle 'use lib "TempLib";print for grep /TempLib/, @INC;' TempLib $ mkdir -p TempLib/i486-linux/auto $ perl -wle 'use lib "TempLib";print for grep /TempLib/, @INC;' TempLib/i486-linux TempLib $ mkdir -p TempLib/5.8.8/auto $ perl -wle 'use lib "TempLib";print for grep /TempLib/, @INC;' TempLib/5.8.8 TempLib/i486-linux TempLib $ mkdir -p TempLib/5.8.8/i486-linux/auto $ perl -wle 'use lib "TempLib";print for grep /TempLib/, @INC;' TempLib/5.8.8/i486-linux TempLib/5.8.8 TempLib/i486-linux TempLib $ find TempLib/ TempLib/ TempLib/i486-linux TempLib/i486-linux/.auto TempLib/i486-linux/auto TempLib/5.8.8 TempLib/5.8.8/auto TempLib/5.8.8/i486-linux TempLib/5.8.8/i486-linux/auto
So the proper solution is to not include sepecific directory's in your use lib code but to create the correct directorys and let use lib figure out which architecture to use.
update: Added output of find
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: How to instrust Perl to load the right modules based on architecture?
by sunshine_august (Scribe) on Oct 06, 2008 at 08:29 UTC | |
by ikegami (Patriarch) on Oct 06, 2008 at 09:09 UTC |