%vars与$ vars的Perl变量插值规则

JD.*_*JD. 0 perl string-interpolation

即使它是双引号,并且%s应该插入到不存在的哈希,这是有效的Perl和输出"confusing = true".

#!/usr/bin/perl -w
use strict;

my $what = "confusing = %s";
printf $what, "true";
Run Code Online (Sandbox Code Playgroud)

但是,这是无效的(如预期的那样),因为$ s不存在:

my $what = "confusing = $s";
Run Code Online (Sandbox Code Playgroud)

sid*_*yll 6

你说" %s应该插入到一个不存在的哈希"但它不应该.没有哈希插值.但是在Perl 6中是可能的.