Jon*_*ton 20
没有内置任何内容,但是有一个模块Data :: TextOrBinary可以做到这一点。
use Data::TextOrBinary;
say is-text('/bin/bash'.IO); # False
say is-text('/usr/share/dict/words'.IO); # True
Run Code Online (Sandbox Code Playgroud)
jjm*_*elo 10
这是一种启发式方法,尚未转换为Perl 6。您可以简单地以UTF8(或ASCII)形式读取它来执行以下操作:
given slurp("read-utf8.p6", enc => 'utf8') -> $f {
say "UTF8";
}
Run Code Online (Sandbox Code Playgroud)
(用要检查的文件名替换read-utf8.p6)
小智 5
我们可以通过以下代码使用 File::Type。
use strict;
use warnings;
use File::Type;
my $file = '/path/to/file.ext';
my $ft = File::Type->new();
my $file_type = $ft->mime_type($file);
if ( $file_type eq 'application/octet-stream' ) {
# possibly a text file
}
elsif ( $file_type eq 'application/zip' ) {
# file is a zip archive
}
Run Code Online (Sandbox Code Playgroud)
来源:https : //metacpan.org/pod/File :: Type