Syntax highlighting in Perl

Nicholas Clark nick at ccl4.org
Sun Oct 15 11:14:18 BST 2006


On Sun, Oct 15, 2006 at 10:29:47AM +0100, Nik Clayton wrote:

> One question -- when it does the swig build, the makefile that ships with 
> it has this definition:
> 
>     PERL_INC=/usr/lib/perl5/5.8.5/i386-linux-thread-multi/CORE/
> 
> That's not going to work on my FreeBSD box.  The equivalent path is:
> 
>     /usr/local/lib/perl5/5.8.8/mach/CORE
> 
> poking around Config.pm (and Config_heavy.pm) I don't see a variable that 
> corresponds to that.  The closest I get is doing something like this:
> 
>     perl -MConfig -e 'print $Config{archlib}, "/CORE\n"'
> 
> Is that (archlib) the right variable to use?  Can I always append "/CORE" 
> and be guaranteed of getting the right directory?

Technically no, it should be archlibexp. archlib can start with ~

Compare:

$ ~/Reference/5.8.0/bin/perl5.8.0 -MConfig -wle '$file = "$Config{archlib}/CORE/perl.h"; print "$file is @{[-s $file]} bytes"'
Use of uninitialized value in join or string at -e line 1.
~/Reference/5.8.0/lib/perl5/5.8.0/i386-freebsd/CORE/perl.h is  bytes

$ ~/Reference/5.8.0/bin/perl5.8.0 -MConfig -wle '$file = "$Config{archlibexp}/CORE/perl.h"; print "$file is @{[-s $file]} bytes"'
/export/home/nwc10/Reference/5.8.0/lib/perl5/5.8.0/i386-freebsd/CORE/perl.h is 118851 bytes

But yes, "$Config{archlibexp}/CORE" is the directory you want:

$ perl5.00503 -MConfig -wle '$file = "$Config{archlibexp}/CORE/perl.h"; print "$file is @{[-s $file]} bytes"'
/usr/libdata/perl/5.00503/mach/CORE/perl.h is 68016 bytes

Nicholas Clark


More information about the london.pm mailing list