LINUX.ORG.RU

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

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

Эмм... А в чём ошибка, собственно? Ну возвращает test без аргументов в контексте списка один элемент со значением «0» - может, так программистом и было задумано, просто ему было лень обособлять нолик скобками явным образом.

Вообще по-хорошему нужно проверять, в каком контексте находишься и возвращать значения соответственно:

sub test {
 return wantarray?
          @_ ? (1,2,3) : ()
                 :
          @_ ? shift : 0
}

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

Эмм... А в чём ошибка, собственно? Ну возвращает test без аргументов в контексте списка один элемент со значением «0» - может, так программистом и было задумано, просто ему было лень обособлять нолик скобками явным образом.

Вообще по-хорошему нужно проверять, в каком контексте находишься и возвращать значения соответственно:

sub test {
 return wantarray?
          @_ ? (1,2,3) : ()
                 :
          @_ ? shift : 0
}