@$foo
$foo
bir öğe değişken ve @(...)
sözdizimi sadece kendi argüman üzerinde .list
yöntemini çağıran olduğunu @($foo)
, kısaltmasıdır. Sözdizimsel formun resmi Perl 6 belgesinde belgelendiği yeri bulamadığım halde, yöntem ve sözdizimsel formun her ikisi de bazen "liste/dizi contextualizer" olarak adlandırılır.
Bunun için bir kullan, bir öğe kapsayıcısında depolanan bir Array üzerinde yinelemek istediğiniz zamandır. Bir öğe kabı çevreleyen et kabı olmadan düz dizi döner üzerinde .list
çağrı ise, örneğin for
döngüler gibi yerleşik in tek bir madde olarak kabul edilir (yani, "değeri listesi bağlamda yorumlanacaktır zorlar"):
my $foo = [1, 2, 3];
say $foo.perl; # $[1, 2, 3]
say $foo.list.perl; # [1, 2, 3]
say @$foo.perl; # [1, 2, 3]
for $foo { ... } # One iteration
for $foo.list { ... } # Three iterations
for @$foo { ... } # Three iterations (identical to the previous line)
:!foo
, yani :foo(False)
kısaltmasıdır
süreli konumunda ancak bir argüman listesinin bir argüman olarak yazılır
sub do-something (:$verbose = True) { say $verbose; }
do-something; # True
do-something :verbose; # True
do-something :!verbose; # False
, bir Pair nesne oluşturur:
say (:!verbose); # verbose => False
Ben bazı küçük iyileştirmeler yaptık umut değeri
False
olan bir named argument harika bir soru. :) Ben bir 'document' etiketi ekledim çünkü bence meselenin kalbine gider. – raiph