First of all, i strongly join the people who recommended using Perl::Critic. It is an excellent to improve your style and avoid bugs.

You should also use Perl::Tidy.

Your naming, indentation and spacing style is mostly OK, but there are some lines which may be wrong.

Among them:

my $self = bless ({}, ref ($class) || $class); # This is not necessari +ly wrong, but make sure that you understand exactly what it means. $self->{'allowed'} = (); # This variable is not properly defined as a +list. my $size = $options{'size'} || 9; # This may not do what you want. If +you use Perl 5.10 (you should!), consider using // instead of ||. for (my $i = 1; $i <= $size; $i++) # This is OK, but it is C style, no +t Perl. Consider writing: for my $i (1 .. $size) # This is more Perlish and more readable. It's +a matter of taste. $self->set_value(value => $value) if ($value > 0); # This may be it's +correct for Sudoku, but what if $value is supposed to 0? Consider: if (defined $value) my ($self) = @_; # You should probably write: my ($self) = shift; # Option 1. my ($self) = $_[0]; # Option 2. The two options do a very similar thin +g, choose the one that suits you and make sure you understand what th +ey mean. $cells[$row] = (); # You probably want to write: $cells[$row] = []; # Read the documents perllol and perlreftut in the +standard Perl documentation. (If you're don't know where to find them +, you can just Google these names :)

Another hint: If you only use integer values in your program, consider writing `use integer' in the beginning. It may improve performance. But compare your results with and without it.

Good luck!


In reply to Re: Help with Coding Style by amir_e_a
in thread Help with Coding Style by Seij

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.