our declares a package variable that package subroutines can share.

Package Variables

package_variables.pl
use strict;
use warnings;

package Counter;

our $total = 0;

sub add {
    my ($amount) = @_;
    $total = $total + $amount;
    return $total;
}

package main;

my $amount = ;
my $first = Counter::add($amount);
my $second = Counter::add(2);

print "amount=$amount\n";
print "first=$first\n";
print "second=$second\n";
use strict;
use warnings;

package Counter;

our $total = 0;

sub add {
    my ($amount) = @_;
    $total = $total + $amount;
    return $total;
}

package main;

my $amount = ;
my $first = Counter::add($amount);
my $second = Counter::add(2);

print "amount=$amount\n";
print "first=$first\n";
print "second=$second\n";
use strict;
use warnings;

package Counter;

our $total = 0;

sub add {
    my ($amount) = @_;
    $total = $total + $amount;
    return $total;
}

package main;

my $amount = ;
my $first = Counter::add($amount);
my $second = Counter::add(2);

print "amount=$amount\n";
print "first=$first\n";
print "second=$second\n";
package variable A package variable belongs to a package namespace and can be referenced with a qualified name.