(This is unrelated to your actual question / problem.)

Why do you use wantarray?

sub my_uniq { my $self = shift; my @result = uniq @{ $self->list }; wantarray ? @result : scalar @result; }

Why don't you simply write

sub my_uniq { my $self = shift; return uniq @{ $self->list }; }

My guess is it's a performance optimization since it reimplements already existing behaviour. Have you benchmarked it?

My personal opinion - feel free to ignore it.

As far as I can see the method my_uniq is simply a convenience function to make it easier to work with the array reference stored in the field 'list'. I would design the class differently and not provide any direct access to the field 'list' at all. Instead provide an accessor which returns the list as an array and drop the convenience function 'my_uniq'.

# class method sub get_list { my $self = shift; return @{ $self->list() }; }
# client code - variant a # (client wants values and count) my @uniq_list = uniq $obj->get_list(); my $uniq_count = scalar @uniq_list; # client code - variant b # (client just wants the count) my $uniq_count = scalar uniq $obj->get_list();

Main reason: If the user wants to do something else with the list (e.g. reverse) then I don't need to reimplement these functions too.


In reply to Re: Moo From Hell #1: How to proxy a sub from a non OO module [SOLVED] by Monk::Thomas
in thread Moo From Hell #1: How to proxy a sub from a non OO module [SOLVED] by karlgoethebier

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!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • 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, details, 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, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            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.