LINUX.ORG.RU

История изменений

Исправление gh0stwizard, (текущая версия) :

Позволяет

Игра с аргументами может делать фантастические вещи. Особенно через pop, splice. Но твой вариант лишает смысла использовать ссылки, ибо они всеравно дополнительно заолакейтят столько же места, сколько оригинал. ИМХО, пример гкода :) Без обид.

Аналог, без избыточного копирования:

#!perl

use strict;
use warnings;

use Data::Dumper;

sub my_sub {
  my $args = @_ > 1 
      ? { @_ } : ref $_[0] eq 'HASH' 
         ? $_[0] : die "Invalid arguments passed";

  print Dumper $args;
}

my_sub(test => 1);
my_sub({1=>2, 3=>4});

Исправление gh0stwizard, :

Позволяет

Игра с аргументами может делать фантастические вещи. Особенно через pop, splice. Но твой вариант лишает смысла использовать ссылки, ибо они всеравно дополнительно заолакейтят столько же места, сколько оригинал. ИМХО, пример гкода :) Без обид.

Исходная версия gh0stwizard, :

Позволяет

Игра с аргументами может делать фантастические вещи. Особенно через pop, splice. Но твой вариант лишает смысла использовать ссылки, ибо они всеравно заолакейтят столько же места, сколько оригинал. ИМХО, пример гкода :) Без обид.