---
name: "File::Type"
section: "3pm"
platform: "linux"
package: "perl-file-type"
version: "0.22-18"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/File::Type"
---

# File::Type(3pm)

determine file type using magic

## NAME

File::Type - determine file type using 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

File::Type uses magic numbers (typically at the start of a file) to  determine the MIME type of that file.

File::Type can use either a filename, or file contents, to determine the type of a file.

## METHODS

### new

Returns a new File::Type object.

### 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, returns undef.

### checktype\_filename($filename)

Opens `$filename` (if possible; if not, returns undef) and returns the MIME  type of the file.

### checktype\_contents($data)

Matches `$data` against the magic database criteria and returns the MIME type of the file.

## TODO

\* Add additional magic match criteria

## BUGS

None known.

### 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).

## 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.

File::MMagic inlines a copy of the magic database, and uses a DATA filehandle, which causes problems when running under mod\_perl.

File::MimeInfo uses an external magic file, and relies on file extensions rather than magic to determine the mime type.

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.

File::Type::Builder, which generates the code at the heart of this module.

## 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\>.

## AUTHOR

Paul Mison \<pmison@fotango.com\>

## COPYRIGHT

Copyright 2003-2004 Fotango Ltd.

## LICENSE

Licensed under the same terms as Perl itself.
