Perl命令或模块,如Linux"file"命令

Joe*_*ger 3 perl cross-platform file-get-contents

我有一个下载文件的脚本,但这些文件在下载之前没有任何关于它们的信息.在为Linux编写时,我刚刚调用qx{ 'file ' . $filename }它来查看它是否是JPEG图像,如果不删除它.但是,我现在正在尝试重写为独立于平台且纯Perl的形式.我已将所有调用转到system{ 'curl', $image_website }LWP :: UserAgent调用,我希望有一些方法可以用某些东西替换对文件的调用.

DVK*_*DVK 6

File::Type CPAN模块可以帮助您 - 它的描述是"使用魔法确定文件类型",这是Unix type命令所做的.

my $ft = File::Type->new();
my $type_from_file = $ft->checktype_filename($file);
Run Code Online (Sandbox Code Playgroud)

另一种选择是File::LibMagic(libmagic的Perl包装器; file-4.x或file-5.x)

  • 另外:[File :: MimeInfo :: Magic](http://search.cpan.org/perldoc?File::MimeInfo :::Magic). (6认同)
  • File :: LibMagic是最好的,我做了一个比较. (3认同)