package Object::Holder; use strict; use warnings; =head1 NAME Object::Holder - A module for working with parameters. =head1 SYNOPSIS =for example begin #!/usr/bin/perl -w use Object::Holder use strict; my $helper = Object::Holder->new( foo => "bar", bar => "baz" ); my @keys = $helper->param(); my $bar = $helper->param( "bar" ); =for example end =cut sub new { my ( $proto, %supplied ) = (@_); my $class = ref($proto) || $proto; my $self = {}; $self->{ "data" } = {}; # # Store the supplied key=>val pairs in our data section. # foreach my $key ( keys %supplied ) { $self->{ "data" }->{ lc $key } = $supplied{ $key }; } bless( $self, $class ); return $self; } sub param { my ( $self, $param ) = (@_); if ($param) { # return the value of the named param. return ( $self->{ "data" }->{ $param } ); } else { # return all the param names. return ( keys %{ $self->{ "data" } } ); } } 1; package main; my $o = Object::Holder->new( foo => "foo", steve => "kemp " ); # # Get all # my @params = $o->param(); foreach my $param (@params) { # # Get single # print "READ: $param -> " . $o->param($param) . "\n"; }