Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
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 making s'mores by the fire in the courtyard of the Monastery: (12)
As of 2015-07-06 12:21 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (74 votes), past polls