File::Type(3)
π NAME π
okay so bestie, welcome to File::Type(3) β¨ β the manual page for a module whose whole thing is determine file type using magic. Yes, actual magic numbers, not like birthday-party magic π©π¦.
β¨ SYNOPSIS β¨
my $ft = File::Type->new();
# read in data from file to $data, then
my $type_from_data = $ft->checktype_contents($data);
# alternatively, check file from disk
my $type_from_file = $ft->checktype_filename($file);
# convenient method for checking either a file or data
my $type_1 = $ft->mime_type($file);
my $type_2 = $ft->mime_type($data);
πΈ DESCRIPTION πΈ
<s>No cap</s> no cap, File::Type uses magic numbers β typically at the start of a file β to determine the MIME type of that file. It's giving detective energy but for file vibes πβ¨.
And it's flexible, bestie: File::Type can use either a filename, or file contents, to determine the type of a file. So whether you've got the whole file on disk or just the data in your hands, it's got you π«Ά.
π METHODS π
π£ new
Returns a new File::Type object. Fresh object, fresh vibes, literally iconic π
.
π mime_type($argument)
Takes either data or a filename, determines what it is, and passes the argument through to the relevant method below. If the argument is a directory, it returns undef β so yeah, directories get a lil "nope" π.
π¦ checktype_filename($filename)
Opens $filename if possible; if not, it returns undef. Then it returns the MIME type of the file. So it's like "open the file, check the vibe, tell you the type" π₯.
π checktype_contents($data)
Matches $data against the magic database criteria and returns the MIME type of the file. Data goes in, MIME type comes out, periodt β¨.
π₯ TODO π₯
- Add additional magic match criteria
π BUGS π
None known. Not a single one, bestie β the bug list is literally empty πβ¨.
ποΈ NOTES ποΈ
Some magic definitions in the mime-magic file used in the creation of this module vary from those in other apps (eg image/x-png not image/png). So like, heads up: the naming tea is a little different in places π.
π SEE ALSO π
File::MMagic and File::MimeInfo perform the same job, but have a number of problems that led to the creation of this module. It's giving "we tried the other options and they were not it" π.
File::MMagic inlines a copy of the magic database, and uses a DATA filehandle, which causes problems when running under mod_perl. Not the move, honestly.
File::MimeInfo uses an external magic file, and relies on file extensions rather than magic to determine the mime type. Extensions? When actual magic is right there? Cute but no π.
As a result, File::Type uses a seperate module and script to create the code at the core of this module, which means that there is no need to include a magic database at all, and that it is safe to run under mod_perl. Slay π
β¨.
File::Type::Builder, which generates the code at the heart of this module. Builder bestie π οΈπ«Ά.
π«Ά ACKNOWLEDGMENTS π«Ά
File::Type is built from a mime-magic file from cleancode.org. The original can be found at <http://cleancode.org/cgi-bin/viewcvs.cgi/email/mime-magic.mime?rev=1.1.1.1>. Credit where credit is due, always πΈ.
π AUTHOR π
Paul Mison <pmison@fotango.com>
π COPYRIGHT π
Copyright 2003-2004 Fotango Ltd.
πΈ LICENSE πΈ
Licensed under the same terms as Perl itself.
okay bestie, that's the whole page π the footer says perl v5.42.0, dated 2010-11-30, and it's File::Type(3) signing off with main-character energy πβ¨π
π¦ where this page comes from
- opensuse-leap 16.0: perl-File-Type 0.22-bp160.147.11 Β· Artistic-1.0
- opensuse-leap 16.0: perl-File-Type 0.22-bp160.147.11 Β· Artistic-1.0
- opensuse-leap 16.0: perl-File-Type 0.22-bp160.147.11 Β· Artistic-1.0
- opensuse-leap 16.0: perl-File-Type 0.22-bp160.147.11 Β· Artistic-1.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms