Perl receives subroutine arguments in @_, often unpacked into lexical variables.

Positional Arguments

positional_args.pl
use strict;
use warnings;

sub describe_order {
    my ($item, $quantity) = @_;
    my $summary = "$quantity x $item";
    return $summary;
}

my $item = "book";
my $quantity = ;
my $summary = describe_order($item, $quantity);

print "item=$item\n";
print "quantity=$quantity\n";
print "summary=$summary\n";
use strict;
use warnings;

sub describe_order {
    my ($item, $quantity) = @_;
    my $summary = "$quantity x $item";
    return $summary;
}

my $item = "book";
my $quantity = ;
my $summary = describe_order($item, $quantity);

print "item=$item\n";
print "quantity=$quantity\n";
print "summary=$summary\n";
use strict;
use warnings;

sub describe_order {
    my ($item, $quantity) = @_;
    my $summary = "$quantity x $item";
    return $summary;
}

my $item = "book";
my $quantity = ;
my $summary = describe_order($item, $quantity);

print "item=$item\n";
print "quantity=$quantity\n";
print "summary=$summary\n";
positional argument A positional argument gets its meaning from where it appears in the call.