NAME
MIME::Detect - MIME file type identification
SYNOPSIS
my $mime = MIME::Detect->new();
for my $file (@ARGV) {
print sprintf "%s: %s\n", $file, $_->mime_type
for $mime->mime_types($file);
};
METHODS
MIME::Detect->new( ... )
my $mime = MIME::Detect->new();
Creates a new instance and reads the database distributed with this
module.
my $mime = MIME::Detect->new(
files => [
'/usr/share/freedesktop.org/mimeinfo.xml',
't/mimeinfo.xml',
],
);
$mime->read_database %options
$mime->read_database(
xml => MIME::Detect::FreeDesktopOrgDB->get_xml,
files => [
'mymime/mymime.xml',
'/usr/share/freedesktop.org/mime.xml',
],
);
If you want rules in addition to the default database included with the
distribution, you can load the rules from another file. Passing in
multiple filenames will join the multiple databases. Duplicate file
type definitions will not be detected and will be returned as
duplicates.
The rules will be sorted according to the priority specified in the
database file(s).
By default, the XML database stored alongside
MIME::Detect::FreeDesktopOrgDB will be loaded after all custom files
have been loaded. To pass in a different fallback database, either pass
in a reference to the XML string or the name of a package that has an
get_xml subroutine.
To prevent loading the default database, pass undef for the xml key.
$mime->mime_types
my @types = $mime->mime_types( 'some/file' );
for( @types ) {
print $type->mime_type, "\n";
};
Returns the list of MIME types according to their likelyhood. The first
type is the most likely. The returned objects are of type
MIME::Detect::Type.
$mime->mime_type
my $type = $mime->mime_type( 'some/file' );
print $type->mime_type, "\n"
if $type;
Returns the most likely type of a file as MIME::Detect::Type. Returns
undef if no file type can be determined.
SEE ALSO
https://www.freedesktop.org/wiki/Software/shared-mime-info/ - the
website where the XML file is distributed
File::MimeInfo - module to read your locally installed and converted
MIME database
File::LibMagic - if you can install libmagic and the appropriate magic
files
File::MMagic - if you have the appropriate magic files
File::MMagic::XS - if you have the appropriate magic files but want
more speed
File::Type - inlines its database, unsupported since 2004?
File::Type::WebImages - if you're only interested in determining
whether a file is an image or not
MIME::Types - for extension-based detection
REPOSITORY
The public repository of this module is
http://github.com/Corion/filter-signatures.
SUPPORT
The public support forum of this module is
https://perlmonks.org/.
BUG TRACKER
Please report bugs in this module via the RT CPAN bug queue at
https://rt.cpan.org/Public/Dist/Display.html?Name=Filter-signatures or
via mail to
[email protected].
AUTHOR
Max Maischein
[email protected]
COPYRIGHT (c)
Copyright 2015-2016 by Max Maischein
[email protected].
LICENSE
This module is released under the same terms as Perl itself.