Dave Cross: Still Munging Data With Perl: Online event - Mar 17 Learn more

=head1 Sq::Design::Wrap
Currently Seq->wrap stops at the first C<undef>.
my $list = Seq->wrap(1,2,3,undef,4,5,6)
This input will only contain the elements C<1,2,3> in a sequence.
Everything after C<undef> is discarded.
Another approach would be to skip C<undef> so the sequence could
contain C<1,2,3,4,5,6> instead.
I don't know if this is a good decision. It would be easier for some
other functions that return such garbage to work with. But is this
really a good idea?
Maybe C<undef> is used for a purpose to return between those values.
Yeah , whoever design something like this has no clue about good design.
Skipping C<undef> seems like a good idea, but then it messes with such bad
design choices like described.
In this case I think it is better to only pick everything up
to the first C<undef>. A user probably will notice this faster and
can evaluate this behaviour.
Maybe C<undef> can be skipped. Then some glue code must be written
to handle this case. If C<undef> cannot be skipped. Then again, some glue
code must be written to support this strange behaviour.
Aborting on the first C<undef> is probably the best we can do to ensure
erroneous behaviour is catched as soon as possible.