sub new {
my ($class,%data) = @_;
return bless \%data, $class;
}
####
use Acme::Playmate;
my $playmate = new Acme::Playmate("2003", "04");
print "Details for playmate " . $playmate->{ "Name" } . "\n";
print "Birthdate" . $playmate->{ "BirthDate" } . "\n";
print "Birthplace" . $playmate->{ "BirthPlace" } . "\n";
##
##
package Some::User;
sub new {
bless {}, shift;
}
sub user { die "user() must be implemented in subclass" }
sub pass { die "pass() must be implemented in subclass" }
sub url { die "url() must be implemented in subclass" }
##
##
package Some::User::Foo;
sub user { 'bob' }
sub pass { 'seKret' }
sub url { 'http://somesite.com/' }
##
##
my $foo = Some::User->new('Foo');
##
##
print $office->manager->name;
##
##
print $office->manager_name; # manager_name calls $manager->name
##
##
foreach my $tender (@tenders) {
$tender->apply($order);
}
##
##
$object->{foo};
##
##
$object->foo;
$object->set_foo($foo);
##
##
if ($object->error) {
$object->log_errors
} # bad!
##
##
sub log_errors {
my $self = shift;
return $self unless $self->error;
$self->_log_errors;
}
##
##
sub connect {
my $self = shift;
unless ($self->_get_rss_feed) {
$self->_log_errors;
$self->_fetch_cached_copy;
}
$self;
}
##
##
$object->set_foo( $object->get_foo );
##
##
--- #YAML:1.0 !perl/Product
bin: 19
data:
category: 7
cost: 2.13
name: Shirt
price: 3.13
id: 7
inv: 22
modified: 0
##
##
Product 7
Name: Shirt
Category: Clothing (7)
Cost: $2.13
Price: $3.13
On-hand: 22
Bin: Aisle 3, Shelf 5b (19)
Record not modified
##
##
sub new {
my ($class, %data) = @_;
bless \%data => $class;
}
##
##
sub set_some_property {
my ($self, $property) = @_;
$self->{some_prorety} = $property; # (sic)
return $self;
}
sub some_property { $_[0]->{some_property} }
##
##
ok($object->set_some_property($foo), 'Setting a property should succeed');
is($object->some_property, $foo, "... and fetching it should also succeed");