Hi.
New to Moose, my first larger project with it.
My object receives data from an external website, and that data needs
to be cleaned and sanitized a lot. Not wanting to create exotic custom
types for each data item, I tried to use 'around" method modifiers to
mangle the data.
Example:
around 'kdnr' => sub {
my ($org, $self, $value) = @_;
return $self->kdnr unless $value;
$debugcount++;
warn "in around kdnr $debugcount\n";
$value = '' unless ($value =~ m/\d{5}/);
return $self->kdnr($value);
};
This item must be 5 digits, or not present at all, but our customers
manage to enter all kinds of creative stuff here. Checking on the
website is no option, so I want to do it here.
When reading the data set the debugcounter skyrockets within seconds,
a little bit later I get a "Deep recursion" error and much later the
process is killed.
I am aware that 'around' methods probably aren't the best place to
sanitize data, but how else? Custom types? I have seen a Module
MooseX::Mangle, but I am not sure if this does help me with that
recursion thing.
Ideas, hints? Fundamental misunderstanding on my side when using Moose?
TIA,
Ekki