Ответ 1
Используйте ${foo}
:
print <<EOF;
${foo}AAAAAAAA${foo}BBBBBBBB";
EOF
напечатать "$ foo", "AAAAAAAA", $foo, "BBBBBBBB";
Скажем, я хочу использовать этот код с print <<EOF;
:
print <<EOF;
$fooAAAAAAAA$fooBBBBBBBB";
EOF
Это не сработает, потому что Perl считает, что у меня есть переменная с именем $fooAAAAAAAA. Как я могу легко использовать print <<
с такими строками, когда у меня есть длинный тест для печати?
Используйте ${foo}
:
print <<EOF;
${foo}AAAAAAAA${foo}BBBBBBBB";
EOF
Здесь другой способ сделать это с помощью printf
:
printf << EOF, $foo, $foo;
%dAAAAA%dBBBBBBB
EOF
То есть, если вы хотите напечатать $foo
как десятичное число. Вы можете заменить %d
на любой формат, который вам нужен.
И еще один ответ, основанный на не интерполированных строках, который я считаю наиболее подходящим.
print <<'EOF';
$fooAAAAAAAA$fooBBBBBBBB";
EOF