Subject: | Less restrictive #! check in fixin? |
Date: | Mon, 17 Sep 2007 13:27:25 -0700 |
To: | via RT <bug-ExtUtils-MakeMaker [...] rt.cpan.org> |
From: | Michael G Schwern <schwern [...] pobox.com> |
Show quoted text
-------- Original Message --------
Subject: ExtUtils::MM_Unix::fixin
Date: Mon, 17 Sep 2007 12:43:51 -0700
From: Peter Scott <Peter@PSDT.com>
To: mschwern@cpan.org
Hey Schwern, gotta suggestion here. When fixin() is rewriting
shebangs, it looks to see whether it's found a Perl program:
# Now look (in reverse) for interpreter in absolute PATH
(unless perl).
my $interpreter;
if ( $cmd eq "perl" ) {
if ( $Config{startperl} =~ m,^\#!.*/perl, ) {
$interpreter = $Config{startperl};
$interpreter =~ s,^\#!,,;
}
else {
$interpreter = $Config{perlpath};
}
}
I think this is a bit too restrictive. Reason being, I found it the
hard way when I had a shebang referencing an executable called
perl5.8.8. Then there's the possibility of perl-thr, perl-debug, etc,
and maybe perl6...
So what do you say to making that
if ( $cmd =~ /^perl(?:\z|[^a-z])/ ) {
instead?
--
There will be snacks.