What if you want named parameters? (i.e. sending a hash as your
argument)

sub m4
{
    my $self = shift;
    my %args = @_;

    # and then optionally
    my ($arg1, $arg2, $arg3) = @args{qw/arg1 arg2 arg3/};

    # or you can just use $args{arg1}, etc...
}


On Thu, Jan 02, 2020 at 09:12:42PM +0100, Marc Espie wrote:
> sub f
> {
>       my ($arg1, $arg2) = @_;
> 
>       ... code
> 
> }
> 
> - three styles of parameter grab for methods:
> 
> 
> sub m1
> {
>       my $self = shift;
> }
> 
> No other parameter.
> 
> sub m2
> {
>       my ($self, $p1, $p2) = @_;
> }
> 
> when getting all parameters (no check on the number usually)
> 
> 
> sub m3
> {
>       my $self = shift;
>       ...
>       do_something_with(@_);
> }
> 
> for functions with unlimited parameters after the first one

Reply via email to