package Dreamcar;
sub modello{
my ($macchina, $modello) = @_;
$modello && ($macchina->{'Modello'}=$modello);
return $macchina->{'Modello'};
}
1;
####
package Scuderia;
use Dreamcar;
@ISA = qw[Dreamcar];
sub tipo{
my ($macchina, $tipo)=@_;
if ($tipo){$macchina->{'Tipo'}=$tipo};
return $macchina_>{'Tipo'};
}
1;
####
package Da_corsa;
use Scuderia;;
@ISA= "Scuderia"; # we say that ISA e' macchina da corsa nella scuderia famosa
#declaring a class of racing car
sub class{
my($class)=@;
my $macchina ={}; #empty anonomous hash
bless $macchina, $class;
return $macchina;
}
sub tempo_sul_giro {
my ($macchina, $tempo)=@_;
$tempo && ($macchina->{'Tempo_sul_Giro'}=$tempo);
return $macchina->{'Tempo_sul_Giro'};
}
####
#testing the modules
use strict;
use warnings;
use Data::Dump qw(dump);
use Da_corsa;
#inheritance adesso
my $da_corsa = Da_corsa->class();
$da_corsa-> modello('Ferrari');
$da_corsa-> tipo('LaFerrari');
$da_corsa -> tempo_sul_giro('2.8 secondi');
print "the Racing car is from ", $da_corsa->modello()," and the type is ",$da_corsa->tipo(),
" and can do 0-60MPH in : ", $da_corsa->tempo_dal_giro(),"\n";