my $member = "dump_$key";
my $name = "name_$key";
$name = $self->can($name) ? $self->$name () . ' ' : '';
...
if ($self->can($member)) {
$self->$member ($pos, $len);
$key is an "atom" code from the file being parsed. If there is a handler for the atom $self->$member dispatches to the code to handle it. One neat thing about this is that a derived class can add handlers and the parser just takes it all in its stride. I reckon that's pretty cool - perhaps even elegant. :)
One way to do a binary conversion is:
my $str = '001100010011001100110001';
my $value = pack ('B*', $str);
print $value;
DWIM is Perl's answer to Gödel
|