[Pdx-pm] module recommendation: regex over data structure
Braden Kelley
bmk at rentrak.com
Sat Jun 15 10:10:18 PDT 2013
One potential problem with serializing using something like JSON::XS is a
simple regex replace would also end up replacing hash keys, not just their
values.
# from Josh Heumann on Friday 14 June 2013:
>Using YAML/JSON isn't a bad idea, but I'm worried about the
>performance hit.
As long as your replacement doesn't break quoting or otherwise trip on
the serialization, yeah. JSON::XS was super quick and the fastest
serializer last time I checked. You'll need the ram.
Recursive implementation is easy enough.
sub replace_deeply {
my ($data, $match, $replace) = @_;
my $r;
$r = sub {
my $ref = ref($_[0]) or return $_[0] =~ s/$match/$replace/;
if($ref eq 'ARRAY') {
$r->($_) for @{$_[0]}
}
elsif($ref eq 'HASH') {
$r->($_) for values %{$_[0]};
}
};
$r->($data);
return $data;
}
--Eric
--
---------------------------------------------------
http://scratchcomputing.com
---------------------------------------------------
_______________________________________________
Pdx-pm-list mailing list
Pdx-pm-list at pm.org
http://mail.pm.org/mailman/listinfo/pdx-pm-list
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/pdx-pm-list/attachments/20130615/6f62863a/attachment.html>
More information about the Pdx-pm-list
mailing list