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 <perl6-users@perl.org> wrote:
>>>>     <perl6-users@perl.org <mailto:perl6-users@perl.org>> 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 <wolfgang.banas...@gmail.com
>>> <mailto:wolfgang.banas...@gmail.com>> 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
>

Reply via email to