Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister

Re: What's wrong with PREFIX, you ungrateful fucks.

by castaway (Parson)
on May 19, 2005 at 07:39 UTC ( #458541=note: print w/replies, xml ) Need Help??

in reply to What's wrong with PREFIX, you ungrateful fucks.
in thread Module::Build users -- please use the "traditional" create_makefile_pl option

Nice rant.

I've just read through that ML discussion you pointed to, and I have to admit I'm still in the dark about why PREFIX is bad. Bear with me a minute. I see there two problems mentioned:

  1. That using it under OS X produces somewhat weird paths - Ok, so mention in the docs that PREFIX under OS X isn't a good idea.
  2. That setting PREFIX and MANPATH, LIB etc at the same time makes a potential mess. - Now, I can't think of a reason I'd want to do this, except maybe to say "Put man pages here (MANPATH) and everything else over there (PREFIX or whatever). And if I wanted to do that, I, as the user/installer would expect to be warned by the programm that, for example, I needed to have MANPATH first, and PREFIX after, or some such. In general I'd settle for: if someone wants to set one dir specially, then they'll need to set them all that way, and can't have PREFIX in there at all.
Are there other cases I'm missing?

I generally get the feeling that people are too hung up on the "special cases" of PREFIX, and won't seem to admit that, usually, anyone using PREFIX just wants to say "stick everything under this directory", and has PREFIX as their only extra argument. All this doc discussing reflects this problem. Were I to have a say, I'd make PREFIX just do that, and warn whenever it is used together with other potenially conflicting variables.

One other thing I noticed in that discussion. It seems to imply, that when using PREFIX with Makefile.PL, your PERL5LIB automagically gets set to whatever you used in PREFIX. That's never been the case for me, when I've wanted to install a bunch of modules that depend upon each other, in a particular directory, I've had to set PERL5LIB manually after the first one, so the others can find it. Have I missed some innovation there, or am I misunderstanding the discussion?

Last thing: Software doesnt have to be perfect, even in this case. It just needs to document what it can do, and not do, and warn suffciently if the user does something that won't produce useful results. Add the functionality, document it, and let the user worry about how they are going to use it, because I'm still convinced, that in 99% of the cases, the person installing the module will not stumble across the edge cases.


Oh, and Module::Build should definitely complain if it gets arguments it doesn't know, silently ignoring is a recipe for disaster IMO. (Images of people screaming "why didnt XYZ work?" - sorta like strict, y'know, a typo checker..

  • Comment on Re: What's wrong with PREFIX, you ungrateful fucks.

Replies are listed 'Best First'.
Re^2: What's wrong with PREFIX, you ungrateful fucks.
by zby (Vicar) on May 19, 2005 at 10:26 UTC
    Does not the 'install_base' parameter provide the "stick everything under this directory" functionality?
      I expect it does. My question boils down to: Why isn't the answer to "Where is PREFIX?" just "install_base does the same thing", which is correct in 99% of cases that anyone cares about. Instead there seems to be always a long discussion about how bad PREFIX is, that never actually gets to the point.

      NB: I have most likely not read all existing discussions on the subject, so this is just a synopsis of those on PM that I've seen.


Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://458541]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (5)
As of 2018-05-28 05:52 GMT
Find Nodes?
    Voting Booth?