package Pen; use strict; use warnings; sub new { my $class = shift; my $self = { }; bless $self,$class; } sub set_token { my $self = shift; $self->{token}{$_[0]} = $_[1]; } sub get_token { my $self = shift; return $self->{token}{$_[0]}; } sub get_token_keys { my $self = shift; keys %{$self->{token}}; } package main; my $p = new Pen; $p->set_token( color => 'red'); $p->set_token( price => '10.0'); print $p->get_token( 'color'),"\n"; print join "\t",$p->get_token_keys(),"\n";