file 命令无法识别 perl 模块

file 命令无法识别 perl 模块

文件命令 (Debian Jessie) 无法识别某些 Perl 模块。例如: /usr/share/perl5/XML/SAX.pm (来自 libxml-sax-perl)给出:

$ file /usr/share/perl5/XML/SAX.pm
/usr/share/perl5/XML/SAX.pm: C++ source, ASCII text

该模块开始于:

# $Id$

package XML::SAX;

use strict;
use vars qw($VERSION @ISA @EXPORT_OK);

当我删除前两行时,文件将其视为 Perl 模块:

$ file tt
tt: Perl5 module source, ASCII text

尽管如此,其他以注释开头的模块,例如/usr/lib/i386-linux-gnu/perl/5.20.2/Encode.pm已被正确识别。

这是一个错误吗?我在哪里可以找到未编译的 mime 数据/usr/share/file/magic.mgc

答案1

未编译的数据(不是 MIME 数据)/usr/share/file/magic.mgc位于Magdir在里面file(1) 源代码。 Perl 魔法的具体定义是Magdir/perl。您看到的问题是固定的;该修复程序在file5.23 及更高版本中提供。

相关内容