LINUX.ORG.RU

Perl - значение по умолчанию для параметра подпрограммы


0

0

Возможно ли задать значение по умолчанию для параметра sub'a?
Есть функция, типичный вызов которой выглядит так
foo("string",undef);
и только в исключительный случаях 
foo("error",1);

Хотелось бы иметь возможность вызывать так
foo("string");
foo("error",1);

Имеется ввиду, что включены все strict моды, жёстко заданы прототипы
и т.п.
Мне нужно как в C++.

Это возможно в Perl?

> жёстко заданы прототипы

если задае прототип ($$) - то не выдет.

определяйте foo без прототипа - и все будет работать.

idle ★★★★★
()

как в С++ не получится, можно так:

sub file_open
{
my ($file_name, $mode) = @_;
$mode = "read_only" unless $mode;
}

aton
()

Расслабь прототип. Там можно параметр объявить как необязательный. Ну или просто не прототипируй эту функцию.

Zulu ★★☆☆
()

вот так:

sub{
  if $_[1] {делать тото} # ... и все. че мудрить особенно...
}


anonymous
()
Ответ на: комментарий от anonymous

Прототипирование. Не знаешь зачем? Тогда оно тебе не надо.

Zulu ★★☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.