So I run my script like this:

/usr/local/bin/perl5.8.0 -MInline=FORCE,NOCLEAN,NOISY xsubpp.problem 
Starting Build Prepocess Stage
Finished Build Prepocess Stage

Starting Build Parse Stage
Finished Build Parse Stage

Starting Build Glue 1 Stage
Finished Build Glue 1 Stage

Starting Build Glue 2 Stage
Finished Build Glue 2 Stage

Starting Build Glue 3 Stage
Finished Build Glue 3 Stage

Starting Build Compile Stage
  Starting "perl Makefile.PL" Stage
Writing Makefile for xsubpp_problem_b494
  Finished "perl Makefile.PL" Stage

  Starting "make" Stage
/usr/local/bin/perl -I/usr/local/lib/perl5/5.00503/i686-linux 
-I/usr/local/lib/perl5/5.00503 /usr/local/lib/perl5/5.00503/ExtUtils/xsubpp  -typemap 
/usr/local/lib/perl5/5.8.0/ExtUtils/typemap  xsubpp_problem_b494.xs >xstmp.c && mv 
xstmp.c xsubpp_problem_b494.c



Eh? Why is it now switching back to using /usr/local/bin/perl

I admit that I'm a troublesome case - I have /usr/local/bin/perl5.8.0
and /usr/local/bin/perl5.00503 installed and both have Config.pm thinking
that they are installed as /usr/local/bin/perl

This isn't a crazy situation to be in, as it will occur whenever you install
1 version of perl, then upgrade to another, and then try to use the old one
by full name.

(and I confess to having rather a lot of other versions of perl in
/usr/local/bin)

/usr/local/bin/perl is currently a symlink to /usr/local/bin/perl5.00503
because that was the only way I could get Inline 0.44 to build against
5.005_03 (without getting horribly confused by a /usr/local/bin/perl that
was actually 5.8.0) about 15 minutes ago.

I suspect that the problem is that prior to 5.8.0 one can't really trust $^X
to be the full path of perl, so it's better to use $Config{perl} and trust
that that is perl. However, 5.8.0 is trustworthy (at least on Linux, FreeBSD
and Solaris IIRC).

Moreover, if I explicitly invoke perl with a full path (rather than as perl
and letting the shell find it in $PATH) is there any reason not to keep using
$^X?
Is it worth doing a sanity check to see if the version reported by the perl
Inline thinks it is matches $] ?

I'm not sure what the answer is, but it must be a bug (even if it's an
impossible bug to solve) because it doesn't "just work", and that's what
Inline's all about, isn't it?

This is Inline 0.44

Nicholas Clark

Reply via email to