Provided by: libfile-type-perl_0.22-5_all bug

NAME

       File::Type::Builder - parse mime-magic and generate code

SYNOPSIS

           my $build = File::Type::Builder->new();

           while (<magic>) {
             chomp;
             my $parsed = $build->parse_magic($_);

             my $code   = $build->string_start($parsed);
             (or string_offset or beshort)
           }

DESCRIPTION

       Reads in the mime-magic file format and translates it to code.  (This documentation would
       be longer if I really expected anyone other than me to run the code.)

METHODS

   new
       Creates a new File::Type::Builder object.

   parse_magic
       Pulls apart a line of a mime-magic file using a string of regular expressions.

       An example mime-magic file can be found in cleancode CVS at
       <http://cleancode.org/cgi-bin/viewcvs.cgi/email/mime-magic.mime?rev=1.1.1.1>

   string
       Builds code to match magic that's of type string.

       Has to do some cleverness to make the regular expression work properly.

   be
       Builds code to match 'beshort' and 'belong' magic (eg audio/mpeg, image/jpeg).

PRIVATE METHODS

   _substr_matching
       Sometimes the data is smaller than the offset we're looking for in the file. If this is
       the case, then the file is obviously not of that type, and furthermore we should avoid
       issuing a couple of warnings that Perl would otherwise emit.

       This subroutine generates this code.

   _get_escapes
       Returns a reference to a hash defining characters that should not be escaped.

TODO

           * Add handlers for other magic types (bedate, byte, etc)

           * Make verbosity/logging nicer.

           * Find more edge cases.

           * Remove redundant 'if (length $data > 0)' check.

       Longer term:

           * Fix for multiple magic format types?

BUGS

       Incomplete. Some known issues with odd entries in mime-magic. Skips some mime-magic lines.

SEE ALSO

       File::Type, which is partially generated by this module.

AUTHOR

       Paul Mison <pmison@fotango.com>

COPYRIGHT

       Copyright 2003 Fotango Ltd.

LICENSE

       Licensed under the same terms as Perl itself.