[Pdx-pm] Getopt::Modern usage model

Eric Wilhelm ewilhelm at sbcglobal.net
Fri Jun 10 00:39:05 PDT 2005

# The following was supposedly scribed by
# Austin Schutz
# on Thursday 09 June 2005 09:49 pm:

>Come to think of it, I don't see why you need to monkey with it
>at all. If the author wants to interpolate ~ all they have to do is
>s/^~/$ENV{HOME}/. Document it as a gotcha for the author to be aware
> of. 

But it's really a gotcha for the user, which is just one more thing for 
the author to have to document.

> Also by doing that you can pass off responsibility for cases 
> where the user didn't want shell interpolation, --foo='~' or similar.
> Otherwise there's no way of knowing. Actually, that makes it a good
> excuse for calling this "the right thing to do", which I would
> propose that it is.

It's actually starting to sound like this is a good reason to call the 
--whole=thing off.  If the user doesn't want shell expansion, they 
can act accordingly.

Also, I was thinking that the issue actually involved all sorts of shell 
expansion, but it looks like it only really involves the ~.

However, it still introduces a few inconsistencies.

  --this=a{d,c,b}e   ne   --this a{d,c,b}e

> Otherwise there's no way of knowing.

I think the best way of knowing is to not go there.  --this '~' allows 
the user to be very clear about what they mean and I don't see why any 
program or module should second-guess that.  If --this=~ is supposed to 
be treated in a special way (which is actually a work-around to the way 
the shell treats words), then I don't think it's going to be worth the 
extra code.

If I don't try to make everyone happy, the module is unused.  If I do 
it's useless right?

"If you only know how to use a hammer, every problem begins to look like 
a nail." 
                                       -- Richard B. Johnson

More information about the Pdx-pm-list mailing list