in reply to Re: Re: using return to create a module object
in thread using return to create a module object

You should get out of the habit of unnecessarily quoting variables - it is bad habit. Here are a couple of corrections:
my %snmp_options = ( hostname => $args->{h}, retries => $retries, # etc ); # and $snmp_options{username} = $snmp_username;
Sure, using quotes works for those examples, but it is unnecessary and will one day lead to something like:
package My::CGI; use strict; use CGI; sub new { my $class = shift; my $foo = 'bar'; my $q = CGI->new(); my $self = { foo => "$foo", cgi => "$q", }; return bless $self, $class; } package main; use strict; my $q = My::CGI->new(); print $q->{foo}, "\n"; print $q->{cgi}->a({href=>'http://foo.bar'},'some link'),"\n"; __END__ yields: bar Can't locate object method "a" via package "CGI=HASH(0x80f8a20)" at ./foo.pl line 26.
Whoops! What happened? You literalized a reference. Try this code out, then go back and remove the unnecessary quotes inside the $self hash ref.

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)