39

考虑:

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

假设我想将此代码与以下代码一起使用print <<EOF;

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

那是行不通的,因为 Perl 认为我有一个名为$fooAAAAAAAA. print <<当我要打印很长的测试时,如何轻松使用这些行?

4

3 回答 3

61

使用${foo}

print <<EOF;
    ${foo}AAAAAAAA${foo}BBBBBBBB";
EOF
于 2009-02-03T06:06:40.590 回答
4

这是另一种使用方法printf

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

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

于 2009-02-03T07:10:08.510 回答
0

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

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

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

于 2017-12-05T09:14:56.770 回答