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 ★★☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.