[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