Perl Subroutines

Defining and using subroutines (functions)

Basic Subroutine

sub greet { # define subroutine
    print "Hello\n";
}
greet(); # call subroutine

Parameters

sub greet {
    my ($name) = @_; # get parameter from @_
    print "Hello, $name\n";
}
greet("John"); # pass argument

Multiple Parameters

sub add {
    my ($a, $b) = @_; # unpack multiple params
    return $a + $b; # return value
}
my $sum = add(5, 3);

Return Values

sub get_values { # return multiple values
    return (1, 2, 3);
}
my ($x, $y, $z) = get_values(); # unpack return values

Default Parameters

sub greet {
    my $name = shift @_ || "Guest"; # default value
    print "Hello, $name\n";
}