File::M...o::Magic(3)

πŸ’– NAME πŸ’–

File::MimeInfo::Magic β€” determine file type with magic. ✨

okay bestie, this is the File::M...o::Magic(3) page β€” User Contributed Perl Documentation β€” and it's literally all about File::MimeInfo::Magic. πŸ’…

✨ SYNOPSIS ✨

use File::MimeInfo::Magic;
my $mime_type = mimetype($file);

πŸ¦‹ DESCRIPTION πŸ¦‹

This module inherits from File::MimeInfo. It's 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. periodt. πŸ’–

🌈 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(). The way that it works: magic rules with a 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 <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. πŸ“œ


mwah πŸ’‹ β€” that's a wrap, bestie. This page is signed off with perl v5.42.0, dated 2024-04-26, and filed under File::M...o::Magic(3). πŸ’–βœ¨

πŸ“¦ where this page comes from