Подтвердить что ты не робот

Как я могу отделить переменные Perl от текста в интерполированных строках?

напечатать "$ foo", "AAAAAAAA", $foo, "BBBBBBBB";

Скажем, я хочу использовать этот код с print <<EOF;:

print <<EOF;
    $fooAAAAAAAA$fooBBBBBBBB";
EOF

Это не сработает, потому что Perl считает, что у меня есть переменная с именем $fooAAAAAAAA. Как я могу легко использовать print << с такими строками, когда у меня есть длинный тест для печати?

4b9b3361

Ответ 1

Используйте ${foo}:

print <<EOF;
    ${foo}AAAAAAAA${foo}BBBBBBBB";
EOF

Ответ 2

Здесь другой способ сделать это с помощью printf:

printf << EOF, $foo, $foo;
   %dAAAAA%dBBBBBBB 
EOF

То есть, если вы хотите напечатать $foo как десятичное число. Вы можете заменить %d на любой формат, который вам нужен.

Ответ 3

И еще один ответ, основанный на не интерполированных строках, который я считаю наиболее подходящим.

print <<'EOF';
    $fooAAAAAAAA$fooBBBBBBBB";
EOF

http://perldoc.perl.org/perlop.html#Quote-Like-Operators