G'day hexcoder,
Perhaps, instead of a table of just templates, you could use a table of coderefs
whose functionality includes preprocessing, unpacking, formatting, and anything else you need.
Here's a highly contrived and primitive example just to show the technique.
#!/usr/bin/env perl -l
use strict;
use warnings;
my %decode_type = (
A => sub { "Do TypeA stuff with '$_[0]'" },
B => sub { "Do TypeB stuff with '$_[0]'" },
);
while (<DATA>) {
chomp;
my ($type, $msg) = split /\s+/, $_, 2;
my $decoded = $decode_type{$type}->($msg);
print $decoded;
}
__DATA__
B message B1
A more complex message A1
B message B2
Output:
Do TypeB stuff with 'message B1'
Do TypeA stuff with 'more complex message A1'
Do TypeB stuff with 'message B2'
I don't know how useful that might be; however,
your general description suggested this approach.
|