What are best practices for working with bless and basic OO?

Best practices for working with bless in Perl, focusing on basic Object-Oriented programming principles.

Perl, OO, Object-Oriented, bless, best practices, encapsulation, inheritance, polymorphism


# Define a simple class using bless

package Animal;

sub new {
    my ($class, $name) = @_;
    my $self = {
        name => $name,
    };
    bless $self, $class; # Bless the reference to the object
    return $self;
}

sub speak {
    my ($self) = @_;
    return "I am a " . $self->{name} . "!";
}

# Using the class
my $dog = Animal->new("Dog");
print $dog->speak(); # Output: I am a Dog!
    

Perl OO Object-Oriented bless best practices encapsulation inheritance polymorphism