#! /gte/bin/perl -w use strict; use warnings; my $obj=Numbers->new('num1'=>7, 'num2'=>2); print "The object attribute num1 is ",$obj->dump('num1'),"\n"; print "The object attribute num2 is ",$obj->dump('num2'),"\n"; $obj->add_nums(); print "The add result is ",$obj->dump('result'),"\n"; $obj->subtract_nums(); print "The subtract result is ",$obj->dump('result'),"\n"; package Numbers; # This is the class sub new { my $class=shift; my %params=@_; my $self={}; $self->{$_}=$params{$_} foreach keys(%params); bless($self, $class); return $self; } sub add_nums { my $self=shift; $self->{result}=$self->{num1}+$self->{num2}; return $self->{result}; } sub subtract_nums { my $self=shift; $self->{result}=$self->{num1}-$self->{num2}; return $self->{result}; } sub change_nums { my $self=shift; my %params=@_; $self->{$_}=$params{$_} foreach keys(%params); return $self; } sub dump { my $self=shift; my $val=shift; return $self->{$val}; } 1; __END__