sub remote_run { my ($self, %args) = @_; $self->resource( $args{resource} ) if $args{resource}; $self->username( $args{username} ) if $args{username}; my $resource = $self->resource or die("'resource' must be provided"); my $username = $self->username or die("'username' must be provided"); # Here comes the actual code ... }