On Fri, 28 Jan 2011 20:23:32 +0100, Jiří Pavlovský <[email protected]> wrote:
> subtype 'Subject'
> => as 'Str';
>
> coerce 'Subject'
> => from 'Str'
> => via {
>
> my $sanitized = sanitize_input($_);
> $sanitized;
>
> };
This will never fire. Every valid Str is already a valid Subject, so no
coercion will run.
Add a constraint to Subject.
subtype 'Subject', as 'Str', where { is_clean($_) };
coerce 'Subject', from 'Str', via { sanitize($_) };
> subtype MaybeSubject => as 'Maybe[Subject]';
> coerce 'MaybeSubject'
> => from 'Subject'
> => via {
> my $sanitized =sanitize_input($_);
> $sanitized;
>
> };
This doesn't make any sense to me.
hdp.