# SYNOPSIS use File::ArchivableFormats; my $archive = File::ArchivableFormats->new(); open my $fh, '<', 'path/to/file'; my $result_fh = $archive->identify_from_fh($fh); my $result_path = $archive->identify_from_path('/path/to/file'); # DESCRIPTION This module identifies filetypes and tells you whether they are considered archivable by various institutes. This is done via a plugin mechanism. # ATTRIBUTES # METHODS ## parse\_extension Parses the filename and returns the extension. Uses ["fileparse" in File::Basename](https://metacpan.org/pod/File%3A%3ABasename#fileparse) ## identify\_from\_fh Identify the file from a file handle. Please note that this does not work with a [File::Temp](https://metacpan.org/pod/File%3A%3ATemp) filehandle. Returns a data structure like this: { # DANS is the Prefered format list 'DANS' => { # Types tell you something about why something is on the # preferred format list 'types' => [ 'Plain text (Unicode)', 'Plain text (Non-Unicode)', 'Statistical data (data (.csv) + setup)', 'Raspter GIS (ASCII GRID)', 'Raspter GIS (ASCII GRID)' ], # The extensions by which belongs to the mime type/file 'allowed_extensions' => ['.asc', '.txt'], # Boolean which tells you if the file is archivable and # therfore preferred. 'archivable' => 1 }, 'mime_type' => 'text/plain' }; ## identify\_from\_path Identify the file from path/filename. ## identify\_from\_mimetype Identify based on the mimetype ## installed\_drivers Returns an array with all the installed plugins. # SEE ALSO - [File::MimeInfo::Magic](https://metacpan.org/pod/File%3A%3AMimeInfo%3A%3AMagic) - IANA [http://www.iana.org/assignments/media-types/media-types.xhtml](http://www.iana.org/assignments/media-types/media-types.xhtml) [http://www.iana.org/assignments/media-types/application.csv](http://www.iana.org/assignments/media-types/application.csv)