If someone wants to make the final word on what the behavior should be I can go ahead and implement it.
On Tue, Sep 23, 2008 at 11:41 PM, Jonathan Scott Duff <[EMAIL PROTECTED]> wrote: > On Tue, Sep 23, 2008 at 9:38 AM, TSa <[EMAIL PROTECTED]> wrote: > >> HaloO, >> Moritz Lenz wrote: >> >>> In Perl 5 a negative limit means "unlimited", which we don't have to do >>> because we have the Whatever star. >>> >> >> I like the notion of negative numbers as the other end of infinity. >> Where infinity here is the length of the split list which can be >> infinite if split is called on a file handle. So a negative number >> could be the number of splits to skip from the front of the list. >> And limits of the form '*-5' would deliver the five last splits. >> > > As another data point, this is the first thing I thought of when I read the > email regarding negative limits. But then I thought "we're trying to get > away from so much implicit magic". And I'm not sure the failure mode is loud > enough when the skip-from-the-front semantics /aren't/ what you want (e.g., > when the limit parameter is variable-ish) > > > A limit of 0 is basically ignored. >> >> Here are a few solution I could think of >> 1) A limit of 0 returns the empty list (you want zero items, you get them) >> > > I think this is a nice degenerate case. >> > > Me too. > > > 2) A limit of 0 fail()s >> > > This is a bit too drastic. > > > Indeed. > > > > 3) non-positive $limit arguments are rejected by the signature (Int >> where { $_ > 0 }) >> > > I think that documents and enforces the common case best. But I would >> include zero and use a name like UInt that has other uses as well. Are >> there pragmas that turn signature failures into undef return values? >> >> >> Regards, TSa. >> -- >> >> "The unavoidable price of reliability is simplicity" -- C.A.R. Hoare >> "Simplicity does not precede complexity, but follows it." -- A.J. Perlis >> 1 + 2 + 3 + 4 + ... = -1/12 -- Srinivasa Ramanujan >> > > > my two cents, > > -Scott > > -- > Jonathan Scott Duff > [EMAIL PROTECTED] >