In RatStr§
See primary documentation in context for method Capture
method Capture(RatStr:D: --> Capture:D)
Equivalent to Mu.Capture
.
In role Callable§
See primary documentation in context for method Capture
method Capture()
Throws X::Cannot::Capture
.
In List§
See primary documentation in context for method Capture
method Capture(List:D: --> Capture:D)
Returns a Capture
where each Pair
, if any, in the <List
has been converted to a named argument (with the key of the Pair
stringified). All other elements in the List
are converted to positional arguments in the order they are found, i.e. the first non pair item in the list becomes the first positional argument, which gets index 0
, the second non pair item becomes the second positional argument, getting index 1
etc.
my $list = (7, 5, a => 2, b => 17); my $capture = $list.Capture; say $capture.keys; # OUTPUT: «(0 1 a b)» my-sub(|$capture); # OUTPUT: «7, 5, 2, 17» sub my-sub($first, $second, :$a, :$b) { say "$first, $second, $a, $b" }
A more advanced example demonstrating the returned Capture
being matched against a Signature
.
my $list = (7, 5, a => 2, b => 17); say so $list.Capture ~~ :($ where * == 7,$,:$a,:$b); # OUTPUT: «True» $list = (8, 5, a => 2, b => 17); say so $list.Capture ~~ :($ where * == 7,$,:$a,:$b); # OUTPUT: «False»
In Int§
See primary documentation in context for method Capture
method Capture()
Throws X::Cannot::Capture
.
In Failure§
See primary documentation in context for method Capture
method Capture()
Throws X::Cannot::Capture
if the invocant is a type object or a handled Failure
. Otherwise, throws the invocant's exception.
In role QuantHash§
See primary documentation in context for method Capture
method Capture()
Returns the object as a Capture
by previously coercing it to a Hash
.
In Seq§
See primary documentation in context for method Capture
method Capture()
Coerces the object to a List
, which is in turn coerced into a Capture
.
In Mu§
See primary documentation in context for method Capture
method Capture(Mu:D: --> Capture:D)
Returns a Capture
with named arguments corresponding to invocant's public attributes:
class Foo { has $.foo = 42; has $.bar = 70; method bar { 'something else' } }.new.Capture.say; # OUTPUT: «\(:bar("something else"), :foo(42))»
In Range§
See primary documentation in context for method Capture
method Capture(Range:D: --> Capture:D)
Returns a Capture
with values of .min
.max
, .excludes-min
, .excludes-max
, .infinite
, and .is-int
as named arguments.
In ComplexStr§
See primary documentation in context for method Capture
method Capture(ComplexStr:D: --> Capture:D)
Equivalent to Mu.Capture
.
In Version§
See primary documentation in context for method Capture
method Capture()
Throws X::Cannot::Capture
.
In Capture§
See primary documentation in context for method Capture
method Capture(Capture:D: --> Capture:D)
Returns itself, i.e. the invocant.
say \(1,2,3, apples => 2).Capture; # OUTPUT: «\(1, 2, 3, :apples(2))»
In Supply§
See primary documentation in context for method Capture
method Capture(Supply:D: --> Capture:D)
Equivalent to calling .List.Capture
on the invocant.
In Str§
See primary documentation in context for method Capture
method Capture()
Throws X::Cannot::Capture
.
In Num§
See primary documentation in context for method Capture
method Capture()
Throws X::Cannot::Capture
.
In role Blob§
See primary documentation in context for method Capture
method Capture(Blob:D:)
Converts the object to a List
which is, in turn, coerced to a Capture
.
In Whatever§
See primary documentation in context for method Capture
method Capture()
Throws X::Cannot::Capture
.
In Map§
See primary documentation in context for method Capture
method Capture(Map:D:)
Returns a Capture
where each key, if any, has been converted to a named argument with the same value as it had in the original Map
. The returned Capture
will not contain any positional arguments.
my $map = Map.new('a' => 2, 'b' => 17); my $capture = $map.Capture; my-sub(|$capture); # OUTPUT: «2, 17» sub my-sub(:$a, :$b) { say "$a, $b" }
In Channel§
See primary documentation in context for method Capture
method Capture(Channel:D: --> Capture:D)
Equivalent to calling .List.Capture
on the invocant.
In Signature§
See primary documentation in context for method Capture
method Capture()
Throws X::Cannot::Capture
.