Thank you!

On Sat, Jan 7, 2017 at 5:23 PM, Siavash <siavash.askari.n...@gmail.com>
wrote:

>
> Hi,
>
> If you really want to avoid `Array[Str].new`, you can do something like
> this:
>
> sub foo (@a where .all ~~ Str) {...}
>
> On 2017-01-07 11:45:55 GMT, Fernando Santagata wrote:
> > Hello,
> >
> > I have a function like this:
> >
> > sub test(Str :$format, :@filter)
> > {
> >   say $format;
> >   say @filter;
> > }
> >
> > and I wish to have a stricter type control over the second parameter.
> >
> > The natural way to do it seemed this:
> >
> > sub test(Str :$format, Array[Str] :$filter)
> > {
> >   say $format;
> >   say $filter;
> > }
> >
> > but then I have to call it this way:
> >
> > test format => 'gnutar', filter => Array[Str].new('gzip', 'uuencode');
> >
> > Is there a less cumbersome way to do it?
> >
> > Obviously this doesn't work:
> >
> > test format => 'gnutar', filter => <gzip uuencode>;
> >
> > because the argument is interpreted as a generic List.
> > This doesn't work either:
> >
> > test format => 'gnutar', filter => ['gzip', 'uuencode'];
> >
> > because it's interpreted as a generic Array, not an Array[Str].
> >
> > Thank you!
>
>


-- 
Fernando Santagata

Reply via email to