冒号can be used as part of a variable name in Perl 6以及尖括号。这些显然称为extended identifiers,用于定义诸如infix:<+>
。
my $foo:bar = 3;
my $foo:bar<2> = 2;
my $foo:bar<baz> = 'quux';
say $foo:bar; # 3
say $foo:bar<2>; # 2 (and so on)
这将在当前范围
中创建具有相同名称的标识符say MY::.keys;
打印($=pod $_ $/ $buz !UNIT_MARKER $=finish EXPORT $foo:bar<2> $foo:bar<baz> $! ::?PACKAGE GLOBALish $bur::quux $¢ $foo:bar $?PACKAGE
但事情就是这样。
say $foo:bar.kv; # prints key-value pairs.
打印(0 3)
。所以这些冒号 ed变量正在创建一个键值对。但是,其他两个&#34;键&#34; (2
和baz
)不包含在该组键值对中。如果我们真的尝试say $foo:bar{'0'}
或say $foo:bar<0>;
,我们将获得不同的错误,因此似乎没有一种实际的方法将其用作真正的密钥。所以我想这里至少有几个问题:
infix
变量的方法?答案 0 :(得分:6)
答案 1 :(得分:6)
当您在列表上调用.kv
时,您会得到一个索引列表,每个索引后跟相关值。
当您在其上调用listy方法时,每个奇异值都将被视为包含一个值的列表。
基本上这些是相同的:
$foo:bar.kv
$foo:bar.list.kv