NAME¶
File::MimeInfo::Magic - Determine file type with magic
SYNOPSIS¶
use File::MimeInfo::Magic;
my $mime_type = mimetype($file);
DESCRIPTION¶
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.
EXPORT¶
The method "mimetype" is exported by default. The methods
"magic", "inodetype", "globs" and
"describe" can be exported on demand.
METHODS¶
See also File::MimeInfo for methods that are inherited.
- "mimetype($file)"
- 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.
- "magic($file)"
- 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()"
- 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.
- "default"
- "describe"
- "extensions"
- "globs"
- "inodetype"
- These routines are imported from File::MimeInfo.
SEE ALSO¶
File::MimeInfo
LIMITATIONS¶
Only word sizes of 1, 2 or 4 are supported. Any other word size is ignored and
will cause a warning.
AUTHOR¶
Jaap Karssenberg <pardus@cpan.org> Maintained by Michiel Beijen
<michiel.beijen@gmail.com>
COPYRIGHT¶
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.