in reply to binary search/replace

momo33:

You can certainly edit binary data in perl, and there are a number of ways to do it. I'll assume you know all about the vagaries of differences in binary data structures between CPU architectures, so I won't open that particular can of worms.

Anyway, it works for me. If you show the code, we may be able to tell you the problem. Here's how I tested it:

$ cat binary_snr.pl #!/usr/bin/perl use strict; use warnings; my $binstr = join("", map { chr($_) } 0 .. 20); my $search_1 = join("", map { chr($_) } 7 .. 11); my $repl_1 = join("", map { 'A' } 7 .. 11); if ($binstr =~ s/$search_1/$repl_1/) { print "Fixed first one\n"; } print join(" ", map { ord($_) < 32 ? sprintf "0x%02x", ord($_) : $_ } split /|/, $binstr), "\n"; $ perl binary_snr.pl Fixed first one 0x00 0x01 0x02 0x03 0x04 0x05 0x06 A A A A A 0x0c 0x0d 0x0e 0x0f 0x10 +0x11 0x12 0x13 0x14 $

...roboticus

When your only tool is a hammer, all problems look like your thumb.

Update: minor text update to "If you show" sentence.

Replies are listed 'Best First'.
Re^2: binary search/replace
by momo33 (Beadle) on Jan 26, 2011 at 13:11 UTC
    Thank you both.

    I should have included some code, but my code was so trivial that I thought it would not help a bit. The problem in itself was clear (I hope).

    With your directions I will try to get a working example