note
JavaFan
<blockquote><em>First of all, i strongly join the people who recommended using Perl::Critic. It is an excellent to improve your style</em></blockquote>
Actually, using Perl::Critic doesn't help you to improves one style. It will however help you mimic the style of the people in charge of Perl::Critic.
<blockquote><code>
my ($self) = @_; # You should probably write:
my ($self) = shift; # Option 1.
my ($self) = $_[0]; # Option 2. The two options do a very similar thing, choose the one that suits you and make sure you understand what they mean.
</code></blockquote>
I loathe this kind of advice. You give two alternatives to a line, without any explanation of why any of the alternatives are better. <em>I</em> certainly don't see any problem with the first line than any of the alternatives solves.
<blockquote><code>
for (my $i = 1; $i <= $size; $i++) # This is OK, but it is C style, not Perl.
</code></blockquote>
It's Perl. Hence, it's Perl style. Just because it looks like C doesn't mean it's bad.
<blockquote><code>
for my $i (1 .. $size) # This is more Perlish and more readable. It's a matter of taste.
</code></blockquote>
If it's a matter of taste, why recommend one over the other?
<p>
Personally, I also look at the body when deciding what kind of loop to use. In this case, I wouldn't use a for statement at all.
<code>
$self->{allowed} = [undef, (1) x $size];
</code>
I suspect <c>$self->{allowed}[0]</c> is never used, but I didn't look at the code a lot. If it's not used, I wouldn't use the <c>undef</c> in the code above.
814355
814367