【问题标题】:Perl command or module like Linux "file" commandPerl 命令或模块,如 Linux“文件”命令
【发布时间】:2011-06-14 21:12:52
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    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)

    【讨论】:

    • 谢谢你们俩。 File::Type 有效,但我将研究 File::MimeInfo::Magic,以便我可以使用 File::MimeInfo 的 extensions 函数,而无需需要更多的 CPAN 模块。
    • File::LibMagic 最好,我做了个对比。
    • File::Type 未检测到 Word 文档文件
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-18
    • 1970-01-01
    • 2011-01-24
    相关资源
    最近更新 更多