- my ($self, $input) = @_;
- my @data = unpack $self->template($self), $input;
- return $self->convert([@$self], \@data);
+ my ($format, $input) = @_;
+ my $self = UNIVERSAL::isa($format, __PACKAGE__) ? $format
+ : __PACKAGE__->new($format);
+ my @data = unpack $self->[1], $input;
+ return $self->convert($self->[0], \@data);