A package gives subroutines a namespace so names can be organized.

Package Basics

package_basics.pl
use strict;
use warnings;

package Greeter;

sub greet {
    my ($name) = @_;
    return "Hello, $name";
}

package main;

my $name = ;
my $message = Greeter::greet($name);

print "name=$name\n";
print "message=$message\n";
use strict;
use warnings;

package Greeter;

sub greet {
    my ($name) = @_;
    return "Hello, $name";
}

package main;

my $name = ;
my $message = Greeter::greet($name);

print "name=$name\n";
print "message=$message\n";
use strict;
use warnings;

package Greeter;

sub greet {
    my ($name) = @_;
    return "Hello, $name";
}

package main;

my $name = ;
my $message = Greeter::greet($name);

print "name=$name\n";
print "message=$message\n";
package A package is a namespace for Perl symbols such as subroutine names.