note
eyepopslikeamosquito
<P>
<blockquote>
<I>
I didn't know about "our" (and still don't, but
at least now I know what I should be looking for)
</I>
</blockquote>
Nooo!!! You should <I>not</I> be looking at [doc://our]!
Lexical variables ([doc://my]) are what you should
be learning about first and they should be preferred to global
variables ([doc://our]) in almost all cases.
</P>
<P>
Given you are a Perl beginner, you need to master the basics
of scoping and how to write subroutines.
Start by defining all your subroutines at the top of the
file and pass parameters to each subroutine.
Do not succumb to the evil of having subroutines use global variables.
Instead think about your code, what each subroutine does and what it needs,
and pass parameters to each subroutine for use as local
variables within the subroutine.
For example:
<CODE>
use strict;
use warnings;
sub my_print
{
my $i = shift;
print $i;
}
foreach my $j (0, 1) {
my_print($j);
}
</CODE>
</P>
<P>
Further reading from the Perl monks [Tutorials] section:
<ul>
<li> [id://213855] by [broquaint]
<li> [id://105446] by [Ovid] who concludes with <I>"Interesting to note that the only uses I've
found for <C>our</C> have been hacking bad code"</I>
</ul>
</P>
<P>
As for learning Perl, take a look at <a
href="http://learn.perl.org/">learn.perl.org</a> and <a
href="http://perl-tutorial.org/">Perl Tutorial Hub</a>.
Also, be sure to refer to the
<a href="http://perldoc.perl.org">Perl online documentation</a>.
Good luck!
</P>
1014473
1014479