我没有任何有用的理由知道这一点,但我想知道我是否有一个名称$x
,如果这是一个标量变量(可变的东西)或仅仅是某个东西的名称(不可变的东西).我不想做任何事; 这是好奇心.
我正在玩这样的事情:
my @a = 'a', ('b', 'c' ); my @b = 'd', 'e', 'f', @a; my @ab = @a, @b, ( 1, 2 ); for @ab { put "name: {.^name} VAR: { .VAR.^name }"; when .VAR.can('FETCH') { put "Container: $_" } when .VAR.can('STORE') { put "Container: $_" } when Scalar { put "Scalar container: $_" } when Array { put "Array Container: $_" } default { put "Object: $_" } }
我明白了:
name: Array VAR: Scalar Array Container: a b c name: Array VAR: Scalar Array Container: d e f a b c name: List VAR: Scalar Object: 1 2
我可以看到我可以匹配类型Array
类型匹配,但我认为检查某些东西可以FETCH
或STORE
将是正确的匹配.