变量前的 perl + uniq 字符

变量前的 perl + uniq 字符

变量 EOF 之前的字符“%%”的含义是什么?

  $LINE =`tail -1 $FILE `;
  chomp($LINE);
  if ($LINE eq "%%EOF") 
      {

        .
        .
        .

答案1

没有什么特别的含义,只是按字面意思处理。它只是检查最后一行是否恰好包含%%EOF.这恰好是 PostScript 或 PDF 文档中的结束标记(尝试tail -n 1 somefile.pdf)。

perl扩展双引号内的标量 ( $var) 和列表 ( ) 变量,但不扩展散列/关联数组 ( )。@list%hash

请注意,该代码是不正确的

$LINE = `tail -1 $FILE`;

应该:

$LINE = `tail -n 1 -- $FILE`;

或者:

$ENV{FILE} = $FILE;
$LINE = `tail -n 1 < "\$FILE"`;
#or# $LINE = qx'tail -n 1 < "$FILE"';

您需要--确保 的内容$FILE不被视为选项(例如,如果它以-或开头+)。重定向方法还可以防止名为的文件出现问题-(如果作为参数传递,则该文件将被理解tail为含义)标准输入而不是在当前目录中调用的文件-),但这意味着必须调用 shell。

相关内容