No, it's not going to work that way. And I'm not sure you want to. But what you can do is:
package Automobile;
sub CarType {die "Ought to be overridden!"}
__END__
package Car;
our @ISA = qw[Automobile];
sub CarType {"STRING1"}
__END__
package Truck;
our @ISA = qw[Automobile];
sub CarType {"STRING2"}
__END__
package ParkingLot;
$x = $automobile->CarType;
But do you really want to? I don't know your code, but it smells wrong. Perhaps you need to know the type because it matters how quickly the parking lot is full - it's the size that's important. Better is to have the ParkingLot be agnostic about what class (or type) of automobile it's dealing, and just ask the automobile for the number of slots in needs:
package Automobile;
sub covers_slots {die "Ought to be overridden!"}
__END__
package Car;
our @ISA = qw[Automobile];
sub covers_slots {1;}
__END__
package Truck;
our @ISA = qw[Automobile];
sub covers_slots {3;}
__END__
package ParkingLot;
$slots = $automobile->covers_slots;
Then now if you introduce the classes "Limo", "Schoolbus" and "TinyCar", you don't have to change your ParkingLot module. And it also allows the Truck module return different numbers of covered_slots depending on the size of the truck (big trucks need more slots than small ones).