If you don't mind consuming the input, you can use an anchored regex to eat the input as you generate the summary.
my %mapping = ( '[a-zA-A0-9]+' => 'A', ); my $summary = ''; CHUNK: while (length $filedata) { foreach my $reg (keys %mapping) { if ($filedata =~ s/^$reg//) { $summary .= $mapping{$reg}; next CHUNK; } } die "Chunk starting with '". substr($filedata, 0,10) . "' did not ma +tch any rules!"; }
If I'm confused as to your goal and you actually want to do the opposite of this, you can take the reverse of the %mapping hash and concatenate a big regex string by looking up the regex substring for each character in the summary in turn.
In reply to Re: How to express contents of a file as regex metachars?
by SuicideJunkie
in thread How to express contents of a file as regex metachars?
by dwhite20899
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |