Maureen E Fischer wrote:
> code for me, but since this is considered its own "block", I cant't
> refer to the variables. Should I be
>
> going about this in a totally different way?
You want to create a class. OOP might sound scary, but its not.
# name this file DynamicConfig.pm and
# save it in ~/modules
package DynamicConfig;
use strict;
sub new {
my($class) = shift();
my($self) = bless( { }, $class );
$self->_init( @_ );
return($self);
}
sub _init {
my($self, %params) = @_;
$self->{defaultParam1} = 'Foo';
$self->{defaultParam2} = 'Bar';
$self->{defaultParam3} = 'Bazz';
for my($key)( keys( %params ) ) {
$self->{ $key } = $params{ $key };
}
return();
}
1;
## end module ##
You then use it like this. Call this program whatever you want:
#!/usr/bin/perl -w
use strict;
# this is the absolute path to the directory
# that DynamicConfig.pm is stored
use lib qw(/home/mydir/modules);
use DynamicConfig.pm;
# hard code defaults in the module.
# the arguments to new override defaults
# with matching keys, or adds parameters
# for keys that are not hard coded in the module
my($config) = DynamicConfig->new(
defaultParam2 => 'Rab',
anotherParam => '/etc/passwd'
);
# $config is an object that holds your configuration info.
# access them individually:
print $config->{defaultParam1}, "\n";
print $config->{anotherParam}, "\n";
# dump all the configuration info
# $config is just a hash reference
for my $key ( keys( %{$config} ) ) {
print $key, ': ', $config->{ $key }, "\n";
}
__END__
[trwww@misa trwww]$ perl test.pl
Foo
/etc/passwd
defaultParam1: Foo
defaultParam2: Rab
defaultParam3: Bazz
defaultParam4: Bang
anotherParam: /etc/passwd
enjoy,
Todd W
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]