- 论坛徽章:
- 0
|
###############Destroy Barn1
#!/usr/bin/perl
{package Animal;
sub speak {
my $class=shift;
print $class->name," goes ",$class->sound,"\n";
}
sub name{
my $self=shift;
ref $self
? $$self
: $self;
}
sub named {
my $class=shift;
my $name=shift;
bless \$name,$class;
}
sub DESTROY{
my $self=shift;
print '[',$self->name," has died.]\n";
}
sub eat {
my $class=shift;
my $food=shift;
print $class->name," eat"," $food\n";
}
}
{package Cow;
@ISA=qw(Animal);
sub sound{'neigh'};
}
sub feed_a_cow_named {
my $name=shift;
my $cow=Cow->named($name);
$cow->eat('grass');
print "Returning from the subroutine.\n";
}
{package Barn;
sub new {bless [],shift};
sub add {push @{+shift},shift}; =========>这句话什么意思,+号什么意思
sub contents {@{+shift}};
sub DESTROY {
my $self=shift;
print "$self->nameaa is being destroyed\n";
for ($self->contents){
print ' ',$_->name," goes homeless.\n";
}
}
}
my $barn=Barn->new;
$barn->add(Cow->named('Bessie'));
$barn->add(Cow->named('Gwen'));
print "Burn the barn:\n";
$barn=undef;
print "End of program.\n";
|
|