Perl命令或模块,如Linux“file”命令

时间:2011-01-24 23:49:01

标签: perl cross-platform file-get-contents

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

1 个答案:

答案 0 :(得分:6)

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

my $ft = File::Type->new();
my $type_from_file = $ft->checktype_filename($file);

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