File::MimeInfo::Magic - Determine file type with magic
use File::MimeInfo::Magic; my $mime_type = mimetype($file);
This module inherits from File::MimeInfo, it is transparent to its functions but adds support for the freedesktop magic file.
Magic data is hashed when you need it for the first time. If you want
to force hashing earlier use the rehash()
function.
The method mimetype
is exported by default. The methods
magic
, inodetype
, globs
and
describe
can be exported on demand.
See also File::MimeInfo for methods that are inherited.
Returns a mime-type string for $file
, returns undef on
failure. This method bundles inodetype()
,
globs()
and magic()
. Magic rules with an
priority of 80 and higher are checked before globs()
is
called, all other magic rules afterwards. If this doesn't work the file
is read and the mime-type defaults to 'text/plain' or to
'application/octet-stream' when the first ten chars of the file match
ascii control chars (white spaces excluded). If the file doesn't exist
or isn't readable undef
is returned. If $file
is an object reference only magic
and the default method
are used. See below for details.
Returns a mime-type string for $file
based on the magic
rules, returns undef on failure. $file
can be an object
reference, in that case it is supposed to have a seek()
and
a read()
method. This allows you for example to determine
the mimetype of data in memory by using IO::Scalar. Be aware that when
using a filehandle or an IO::
object you need to set the
:utf8
binmode yourself if appropriate.
Rehash the data files. Glob and magic information is preparsed when
this method is called. If you want to by-pass the XDG basedir system you
can specify your database directories by setting
@File::MimeInfo::DIRS
. But normally it is better to change
the XDG basedir environment variables.
These routines are imported from File::MimeInfo.
File::MimeInfo
Only word sizes of 1, 2 or 4 are supported. Any other word size is ignored and will cause a warning.
Jaap Karssenberg <pardus@cpan.org> Maintained by Michiel Beijen <mb@x14.nl>
Copyright (c) 2003, 2012 Jaap G Karssenberg. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.