Provided by: libparse-binary-perl_0.11-1.1_all bug

NAME

       Parse::Binary - Unpack binary data structures into object hierarchies

VERSION

       This document describes version 0.11 of Parse::Binary, released January 25, 2009.

SYNOPSIS

       # This class represents a Win32 .ico file:

           package IconFile;
           use base 'Parse::Binary';
           use constant FORMAT => (
               Magic           => 'a2',
               Type            => 'v',
               Count           => 'v',
               'Icon'          => [ 'a16', '{$Count}', 1 ],
               Data            => 'a*',
           );

       # An individual icon resource:

           package Icon;
           use base 'Parse::Binary';
           use constant FORMAT => (
               Width           => 'C',
               Height          => 'C',
               ColorCount      => 'C',
               Reserved        => 'C',
               Planes          => 'v',
               BitCount        => 'v',
               ImageSize       => 'V',
               ImageOffset     => 'v',
           );
           sub Data {
               my ($self) = @_;
               return $self->parent->substr($self->ImageOffset, $self->ImageSize);
           }

       # Simple .ico file dumper that uses them:

           use IconFile;
           my $icon_file = IconFile->new('input.ico');
           foreach my $icon ($icon_file->members) {
               print "Dimension: ", $icon->Width, "x", $icon->Height, $/;
               print "Colors: ", 2 ** $icon->BitCount, $/;
               print "Image Size: ", $icon->ImageSize, " bytes", $/;
               print "Actual Size: ", length($icon->Data), " bytes", $/, $/;
           }
           $icon_file->write('output.ico'); # save as another .ico file

DESCRIPTION

       This module makes parsing binary data structures much easier, by serving as a base class
       for classes that represents the binary data, which may contain objects of other classes to
       represent parts of itself.

       Documentation is unfortunately a bit lacking at this moment.  Please read the tests and
       source code of Parse::AFP and Win32::Exe for examples of using this module.

AUTHORS

       Audrey Tang <cpan@audreyt.org>

COPYRIGHT

       Copyright 2004-2009 by Audrey Tang <cpan@audreyt.org>.

       This program is free software; you can redistribute it and/or modify it under the same
       terms as Perl itself.

       See <http://www.perl.com/perl/misc/Artistic.html>