Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid

Re^5: Stupid question (/usr/bin/perl)

by tye (Sage)
on May 13, 2012 at 22:22 UTC ( #970349=note: print w/replies, xml ) Need Help??

in reply to Re^4: Stupid question (/usr/bin/perl)
in thread Stupid question

I've written elsewhere about not messing with the provided-by-the-OS Perl. And I was not advocating messing with it here.

There are dozens of systems I work with. Most of them have a /usr/bin and most of them have Perl. I don't believe there is a single system that I've worked with recently that has Perl and has /usr/bin that doesn't have a /usr/bin/perl. Tons of systems I work with don't have a /usr/local/bin/perl. So, if I'm going to put a path to Perl in a #! line of something that isn't destined for a specific system (or specific group of systems), then I'm going to use /usr/bin/perl as that path.

My preference would be for modern Unix kernels to handle a simple #!perl as "find 'perl' in $PATH and run that". But I have yet to see a kernel that supports such. I've seen people do "#!/usr/bin/env perl" but I've also seen systems that have /bin/env and don't have /usr/bin/env. And it seems both like hackish and imprecise thing to do.

I have a lot of little utilities that don't make many demands of Perl and those, even when I put such on a specific system, I usually leave them pointed at /usr/bin/perl and I don't recall ever having a problem with that.

I work with a lot of large-scale systems of Perl code. Each of those have a version of Perl dedicated to them (along with a stable of specific versions of specific Perl modules). So those versions usually don't end up as /usr/local/bin/perl since sometimes you end up with two different subsystems running on the same box and they might not depend on the same build of Perl. But I also don't post such things to the public.

So my preference is for public postings of Perl scripts to start with #!/usr/bin/perl. I actually use Perl scripts even on systems that don't have a dedicated "for some application" version of Perl installed on them.

But it isn't a terribly strong preference. My expectation is that the #! line will often have to be eventually modified. But I'd rather start with a #! that is most likely to at least be present on most systems.

- tye        

Replies are listed 'Best First'.
Re^6: Stupid question (/usr/bin/perl)
by flexvault (Monsignor) on May 14, 2012 at 08:27 UTC


    Sounds like we do similar types of work, except now most of the time I'm building new systems. For some reason the new distros use Perl 5.10.x, which I've found to have a lot of problems. I would rather have 5.8.8 than a 5.10.x. However, I install 5.12.2 as my preference. Experimenting with 5.14.x, I have had problems with CPAN mods compiling.

    All of this is normal in a changing world, but what I don't like is the vendors modifying Perl to fix their crappy scripts.

    I think if your just take all the defaults with compiling a new Perl, it will be installed in /usr/local/bin.

    I wasn't trying to find fault with your statements as much as pointing to the new problem of using vendor modified Perl.

    All the best...Ed

    "Well done is better than well said." - Benjamin Franklin

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://970349]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (2)
As of 2023-04-01 08:03 GMT
Find Nodes?
    Voting Booth?

    No recent polls found