[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
# 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]};
  return $data;

Pdx-pm-list mailing list
Pdx-pm-list at pm.org
-------------- 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