Whenever it makes sense, I like to work it out to where lexical variables have the smallest scope possible, for the briefest amount of code.
For example:
sub myfunc { my( $this, $that, @those ) = @_; # Here it may make sense to pull # in the contents early on for # simplicity and clarity's sake. # Code here.... # more code here.... foreach my $alias ( @those ) { # Note we declare $alias only # where it's needed. # Do some stuff here. # Do more stuff... my $another = $alias * 5; # $another is limited to the sco +pe # of the foreach loop. $this += $another; } while ( my $choice = shift @those ) { # Another tightly scoped var +. # Do something else. } return $this }
This is contrived, but the idea is that I'm keeping scopes narrow, and declaring variables only where they're needed. To me, this helps to keep the declaration near where the variable is actually used, and that, in my opinion, improves readability and maintainability.
Dave
In reply to Re: Re: Re: Question on use of 'my'
by davido
in thread Question on use of 'my'
by nmerriweather
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |