Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Comment on

( #3333=superdoc: print w/ replies, xml ) Need Help??
eyepopslikeamosquito,
BTW, does anyone know of a CPAN module that can solve this problem directly?

It is hard to imagine why this specific problem would have its own solution.

The problem can be generalized into something worth solving. Assume we want to divide a list on break points. I will present an iterator solution.

#!/usr/bin/perl use strict; use warnings; use Data::Dumper; sub gen_divider { my %opt = @_; my $is_break = $opt{detect_break}; my ($curr, @list); return sub { for (@_) { if (! defined $curr || $is_break->($_, $curr)) { push @list, [$_]; $curr = $_; } else { push @{$list[-1]}, $_; } } return \@list; }; } my $break_point = sub { my ($item_to_test, $prev_break_point) = @_; return $item_to_test ne $prev_break_point; }; my $divide = gen_divider(detect_break => $break_point); for (split //, "ZBBBCZZ") { $divide->($_); } my $list = $divide->(); print Dumper($list);
This leaves a lot to be desired but the idea jumped into my head and so I thought I would share.

Cheers - L~R


In reply to Re: Yet Another Rosetta Code Problem (Perl, Ruby, Python, Haskell, ...) by Limbic~Region
in thread Yet Another Rosetta Code Problem (Perl, Ruby, Python, Haskell, ...) by eyepopslikeamosquito

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • Outside of code tags, you may need to use entities for some characters:
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.
  • Log In?
    Username:
    Password:

    What's my password?
    Create A New User
    Chatterbox?
    and the web crawler heard nothing...

    How do I use this? | Other CB clients
    Other Users?
    Others imbibing at the Monastery: (4)
    As of 2014-09-24 03:07 GMT
    Sections?
    Information?
    Find Nodes?
    Leftovers?
      Voting Booth?

      How do you remember the number of days in each month?











      Results (244 votes), past polls