This can be done with an explicit, named subset if you like:
subset StrOrInt where Str | Int;
sub do_stuff ( StrOrInt $item ) {
say "$item is a " ~ $item.^name;
}
On 1/9/20, ToddAndMargo via perl6-users <[email protected]> wrote:
>>>> <[email protected] <mailto:[email protected]>> wrote:
>>>>
>>>> Hi All,
>>>>
>>>> In a sub declaration, is there a way to constrain
>>>> a variable to only an "int32" or a "Str" (I want both)?
>>>> Or do I have to put up with the other types of "Any"?
>>>>
>>>> Many thanks,
>>>> -T
>>>>
>
>>> On Thu, 9 Jan 2020 at 08:13, WFB <[email protected]
>>> <mailto:[email protected]>> wrote:
>>>
>>> Hi, Todd,
>>>
>>> If I understand your question right, then you mean something like
>>> that:
>>>
>>> sub do-soemthing($value where { .WHAT ~~ Str || .WHAT ~~ Int }) {}
>>>
>>> https://docs.raku.org/type/Signature#index-entry-where_clause
>>>
>>> Regards
>>>
>>> On Thu, 9 Jan 2020 at 03:58, ToddAndMargo via perl6-users
>
>
> On 2020-01-08 23:14, WFB wrote:
>> For the sake of readability you might want use a subset:
>> https://docs.raku.org/language/typesystem#subset
>>
>
> Hi W,
>
> Subset does no seems to be what I am after, but "where"
> does. Thank you!
>
> -T
>