in reply to Re: object oriented tutorial question
in thread object oriented tutorial question
#class Address using inside-out objects package Address; use Scalar::Util qw(refaddr); use strict; use warnings; my %street; my %city; my %state; my %zip; #constructor sub new { my ($class, $street, $city, $state, $zip) = @_; # Get any old (unique) reference my $self = bless \do{my $gash}, $class; my $key = refaddr $self; # Extract the address $street{$key} = $street; $city {$key} = $city; $state {$key} = $state; $zip {$key} = $zip; return $self; } sub street { my ( $self, $street ) = @_; my $key = refaddr $self; $street{$key} = $street if defined($street); return $street{$key}; } sub city { my ( $self, $city ) = @_; my $key = refaddr $self; $city{$key} = $city if defined($city); return $city{$key}; } sub state { my ( $self, $state ) = @_; my $key = refaddr $self; $state{$key} = $state if defined($state); return $state{$key}; } sub zip { my ( $self, $zip ) = @_; my $key = refaddr $self; $zip{$key} = $zip if defined($zip); return $zip{$key}; } sub print { my ($self) = @_; my $key = refaddr $self; print "Address: $street{$key}\n". "$city{$key}\n" . "$state{$key}\n" . "$zip{$key}\n\n" ; } 1;
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^3: object oriented tutorial question
by Anno (Deacon) on Sep 04, 2007 at 00:36 UTC | |
by cdarke (Prior) on Sep 04, 2007 at 10:54 UTC |