Я работаю с perl около двух месяцев; мне просто пришло в голову, что я не знаю, как устанавливать аргументы по умолчанию для подпрограмм. Вот что я рассмотрел:Значения аргументов по умолчанию в подпрограммах
sub hello {
print @_ || "Hello world";
}
И это отлично работает, если все, что вам нужно, было одним из аргументов. Как бы вы установили значения по умолчанию для нескольких аргументов? Я собирался сделать это:
sub hello {
my $say = $_[0] || "Hello";
my $to = $_[1] || "World!";
print "$say $to";
}
Но это очень много работы ... Должен быть более простой способ; возможно, лучшая практика? Благодаря!
Да я попробовал 'печать @_ // "Hello World",' но я '0 '... – David
@ Davidmoreen: тестирование массива для определения нецелесообразно – ysth
@ Davidmoreen, правильный способ сказать, что это 'print $ _ [0] //« Hello world »;'. Как сказал ysth, вы не можете использовать 'defined' в массиве (что означает' // '), потому что массив в скалярном контексте возвращает свою длину, которая всегда определяется. – cjm