in reply to Re^4: Ignore given character from file
in thread Ignore given character from file

Hello N0obieMonk, and welcome to the Monastery!

(1) In a regex, a dot matches any character other than a newline (unless your regex has an /s modifier, in which case . matches a newline too). If you want to match the literal substring “.c”, you need to escape the dot: \.c

(2) How is a “blank” different from a space?

But my main purpose in replying is to point out a logic error in the code snippet shown. open my $out, '>', 'hex.txt'; will re-open and truncate the output file on each iteration of the while loop, and you’ll end up with file “hex.txt” containing only a single entry from the last loop iteration. You need to open the output file for writing before the while loop, so that the filehandle $out is initialized only once.

Update: Added “the literal substring” to point (1).

Hope that helps,

Athanasius <°(((><contra mundum Iustus alius egestas vitae, eros Piratica,

Replies are listed 'Best First'.
Re^6: Ignore given character from file
by N0obieMonk (Novice) on Jan 13, 2016 at 12:33 UTC

    you mean something like this?

    use warnings 'all'; use strict; use autodie; open my $input, '<', $ARGV[0]; open my $out, '>', 'hex.txt'; while (my $sentence = <$input>) { my $substring = '...pck.*?\.c'; $sentence =~ s{$substring}{}; print $out unpack 'H*', $sentence; }

    and thank you for the nice explanations :D