Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

Re: How to pass a value from main program back to a module

by ForgotPasswordAgain (Deacon)
on Feb 22, 2008 at 12:50 UTC ( #669551=note: print w/ replies, xml ) Need Help??


in reply to How to pass a value from main program back to a module

Welcome to object-oriented programming. Your module represents an object. You could, for example, pass this config file name as an argument and have a config_file attribute. How you do OO programming is a good topic for trolling, but the basic idea is something like:

package Module; sub new { my ($pkg, %args) = @_; my $self = bless {}, $pkg; $self->init(\%args); return $self; } sub init { my ($self, $args) = @_; if (exists $args->{config_file}) { my $file = $args->{config_file}; if (-f $file) { $self->{config_file} = $args->{config_file}; } else { die "config file '$file' not found, blah\n"; } } # other initialization } # this kind of "accessor" thing is so boring and repetitious # that many people have made modules to handle it sub config_file { my ($self, $val) = @_; if (defined $val) { $self->{config_file} = $val; } return $self->{config_file}; } # the rest of the wonderful things your module does sub some_other_method { my ($self, $blah) = @_; .... open (my $fh, $self->{config_file}) || suicide; # you might have a data structure (like a hash) # to store the results of the configuration; # or better, you could look on CPAN to see if # someone already has done a configuration module # (as indeed they have) } 1;

There are probably at least a dozen things I did there that you can nitpick or do differently, but that's the general idea.


Comment on Re: How to pass a value from main program back to a module
Select or Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://669551]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (5)
As of 2014-07-12 10:40 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    When choosing user names for websites, I prefer to use:








    Results (239 votes), past polls