[Pdx-pm] Hiding Perlish Churlishness from App users
Eric Wilhelm
ewilhelm at sbcglobal.net
Fri Feb 4 08:12:56 PST 2005
# The following was supposedly scribed by
# Keith Lofstrom
# on Thursday 03 February 2005 02:18 pm:
>or ( @BOOLEAN_FIELDS ) { $$Options{ $_ } =~ s/(false|off|no)/0/i }
<snip>
>Are there any other consequences of this kind of change? There are
>other places that Dirvish is Perlish Churlish that I want to fix
>(loosening up the syntax on some array options, for example), but
>this is the easiest fix to do.
You don't really want to *hide* the perlishness from the users. IMO,
you want it to 'just work' for both those that know perl (I think we
sometimes think a little differently) and those that don't.
Hopefully, this doesn't require much hiding.
http://www.joelonsoftware.com/articles/LeakyAbstractions.html
If you only do the above regex, you still have some holes (e.g. syntax
errors are true.)
($val =~ s/^(f|false|off|no|n|0*)$/0/i) or
($val =~ s/^(t|true|on|yes|y|1)$/1/i) or
die "invalid value $val for option $opt\n";
That anchors the front and back of the string to catch any typo'd
garbage, and gets 000 or even undef() to work too. (Written as "~"
when your config files are in YAML format.)
--Eric
--
The opinions expressed in this e-mail were randomly generated by
the computer and do not necessarily reflect the views of its owner.
--Management
More information about the Pdx-pm-list
mailing list