Что я хочу сделать, так это создать строку, которая в середине имеет определенную строку, если переменная оценивается как true, но опускает этот раздел, если это не так. Так что я пытаюсь сделать это:perl: добавьте переменную в строку, если она существует
my $var1 = "hello";
my $var2 = shift;
my $var3 = "my friend";
if ($var2){
print "$var1 <$var2> $var3\n";
} else {
print "$var1 $var3\n";
}
Выход:
$ perl test.pl
hello my friend
$ perl test.pl there
hello <there> my friend
То есть, очевидно, совершенно функциональным, но мне интересно, если есть способ сделать чек инлайн. Что-то вроде:
print "$var1 " . ("<$var2> " if $var2) . "$var3\n";
Но это дает мне синтаксическую ошибку. Или, если есть способ сделать это, используя подстановку внутри строки, это будет еще лучше.
'print" $ var1 ". ($ var2? "<$var2>": ''). "$ var3 \ n"; ' – Miller