in reply to Re: (jeffa) Re: Code review and question for parts script
in thread Code review and question for parts script
As for use vars drop the commas in qw():
And finally, global variables ... yes they are generally considered bad design, but sometimes they can provide elegance that is, IMHO, worth more than the trouble not using them causes. The important thing is to not rely upon them heavily. I tend to favor OO for larger programs, but in a sense, an attribute is a global variable for an object. An object is just a convenient way to tuck away that variable/attribute when you don't need it. Consider a framework that 'HAS-A' database connection abstracted away in a object heirarchy somewhere:use vars qw/foo bar baz/;
(look familiar, maverick? ;))# some base class that overrides a handler sub handle { my ($self) = @_; my $dbh = $self->{dbh}; my $ses = $self->{session}; my $sth = $dbh->selectall_arrayref(" select id from agents "); my $users = [map { {user => $_->[0]} } @$sth]; my $paramsout = {users => $users}; return $paramsout; }
Here, making the database connection accessible as an attribute from an object not only makes more sense, it is necessary to keep 'things from getting out of hand'. But for small-ish utility scripts, this kind of abstraction is really overkill that gets it the way of 'getting stuff done'. Happy coding. :)
jeffa
L-LL-L--L-LL-L--L-LL-L-- -R--R-RR-R--R-RR-R--R-RR B--B--B--B--B--B--B--B-- H---H---H---H---H---H--- (the triplet paradiddle with high-hat)
|
|---|