On Mon, Jan 12, 2009 at 06:36:55PM +0100, Moritz Lenz wrote:
: Carl Mäsak wrote:
: > Jonathan (>), Ovid (>>), Larry (>>>):
: >>>> Can't say I really like the negated options though. They smell funny.
: >>>
: >>> Agreed, but ltrim and rtrim will disappoint Israelis and dyslexics alike.
: >>> Suggestions welcome as I can't think of anything better.
: >>
: >> The .Net framework calls 'em TrimStart and TrimEnd (and has a Trim that
does
: >> both). So maybe trim_start and trim_end if we wanted to take that lead...
: >
: > How about .trim(:start) and .trim(:end)?
:
: That would be my favourite:
:
: our Str multi method trim (Str $string:, :start = True, :end = True)
Er, that would make .trim(:start) also default :end to True...
Well, except it won't parse either. For at least two reasons. :)
: So $str.=trim would trim both start and end, and if you want only one,
: you can say $str.=trim(:!end);.
HEY! Don't ignore my nose. At least, not this time. :)
Switches should almost never default to true. It's more like:
our Str multi method trim (Str $string:
:$start = False,
:$end = False,
:$both = not $start || $end)
or really, since "start/end" really mean "startonly/endonly":
our Str multi method trim (Str $string:
:start($start_only) = False,
:end($end_only) = False)
{
my $do_start = not $end_only;
my $do_end = not $start_only;
...
}
I really shouldn't be participating in the bikeshedding though...
Larry