my %properties; my $propfilename = $opt{p} ? $opt{p} : "$FindBin::Bin/${FindBin::Script}.properties"; print "reading properties from $propfilename\n" if $opt{v}; my $pfh = IO::File->new("<$propfilename") or die "unable to open properties file $propfilename, $!"; while (my $propline = <$pfh>) { next if $propline =~ /^#/; print $propline if $opt{V}; chomp $propline; my ($key, $value) = split(/=/, $propline); my ($key1, $key2, $key3, $key4) = split(/\./, $key); if (defined $key4) { $properties{$key1}{$key2}{$key3}{$key4} = $value; } elsif (defined $key3) { $properties{$key1}{$key2}{$key3} = $value; } elsif (defined $key2) { $properties{$key1}{$key2} = $value; } elsif (defined $key1) { $properties{$key1} = $value; } } $pfh->close;