in reply to Re^2: How to instrust Perl to load the right modules based on architecture?
in thread How to instrust Perl to load the right modules based on architecture?
My script works well, but if I put the BEGIN block at the tail like this:use strict; use warnings; use FindBin; use lib "$FindBin::Bin/lib"; use lib "$FindBin::Bin/lib/perl5/site_perl/5.8.5"; BEGIN { use Config; require lib; print "archname:$Config{archname}\n"; if ($Config{archname} =~ /^x86_64/) { print "x86_64\n"; lib->import( "$FindBin::Bin/lib64/perl5/5.8.5/x86_64-linux-thread-multi", "$FindBin::Bin/lib64/perl5/site_perl/5.8.5/x86_64-linux-thread +-multi"); } else { print "i386\n"; lib->import( "$FindBin::Bin/lib/perl5/5.8.5/i386-linux-thread-multi", "$FindBin::Bin/lib/perl5/site_perl/5.8.5/i386-linux-thread-mul +ti"); } } use utf8; use threads; use Carp; use IO::Socket::SSL; use IO::Select; use Log::Log4perl;
It throw the error "Can't locate Net/SSLeay.pm in @INC", and I can't find the right path in @INC.use strict; use warnings; use FindBin; use lib "$FindBin::Bin/lib"; use lib "$FindBin::Bin/lib/perl5/site_perl/5.8.5"; use utf8; use threads; use Carp; use IO::Socket::SSL; use IO::Select; use Log::Log4perl; BEGIN { use Config; require lib; print "archname:$Config{archname}\n"; if ($Config{archname} =~ /^x86_64/) { print "x86_64\n"; lib->import( "$FindBin::Bin/lib64/perl5/5.8.5/x86_64-linux-thread-multi", "$FindBin::Bin/lib64/perl5/site_perl/5.8.5/x86_64-linux-thread +-multi"); } else { print "i386\n"; lib->import( "$FindBin::Bin/lib/perl5/5.8.5/i386-linux-thread-multi", "$FindBin::Bin/lib/perl5/site_perl/5.8.5/i386-linux-thread-mul +ti"); } }
I also change the $Config{archname64} to $Config{archname} and, use $Config{archname} =~ /^x86_64/ to decide whether It is a x86_64 host. Because I find that $Config{archname64} is empty(although existed) in both i386 and x86_64 Perl.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^4: How to instrust Perl to load the right modules based on architecture?
by ikegami (Patriarch) on Oct 06, 2008 at 07:15 UTC |