Old School Object Oriented Perl

  • Shape is a retangle. Shape::Circle inherits from the Shape. Is it reasonable?

    Shape class must have color attibute only. Shape::Retangle and Shape::Circle should inherit from the Shape.

    And

    ...

    package Shape::Retangle;

    use parent 'Shape';

    sub new {

        my ($class, $args) = @_; 
    
        my $self = $class->SUPER::new( { color => $args->{color} || 'black' } );
    
        $self->{length} = $args->{length} || 1;
    
        $self->{width}  = $args->{width} || 1;
    
        return bless $self, $class; 
    
    }

    ...

    package Shape::Circle;

    use parent 'Shape';

    sub new {

        my ($class, $args) = @_; 
    
        my $self = $class->SUPER::new( {color => $args->{color} || 'black' } );
    
        $self->{diameter} = $args->{diameter} || 1;
    
        return bless $self, $class; 
    
    }

    ...