如何在插值字符串中将Perl变量与文本分开?

时间:2009-02-03 06:02:46

标签: perl variables interpolation

考虑:

print "    $foo", "AAAAAAAA", $foo, "BBBBBBBB";

假设我想将此代码与print <<EOF;

一起使用
print <<EOF;
    $fooAAAAAAAA$fooBBBBBBBB";
EOF

这不起作用,因为Perl认为我有一个名为$fooAAAAAAAA的变量。当我进行长时间的打印测试时,如何轻松地使用print <<这些行?

3 个答案:

答案 0 :(得分:57)

使用${foo}

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

答案 1 :(得分:4)

以下是使用printf执行此操作的另一种方法:

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

也就是说,假设您要将$foo打印为十进制数字。您可以用您需要的任何格式替换%d

答案 2 :(得分:0)

另一个答案,基于非插值字符串,我认为是最合适的。

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

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