Perl6には、Perl5 -T file test のようなものがありますか?
何も組み込まれていませんが、それを行うモジュール Data :: TextOrBinary があります。
use Data::TextOrBinary;
say is-text('/bin/bash'.IO); # False
say is-text('/usr/share/dict/words'.IO); # True
Perl 6に翻訳されていない というヒューリスティックです。 UTF8(またはASCII)で読み取るだけで同じことができます。
given Slurp("read-utf8.p6", enc => 'utf8') -> $f {
say "UTF8";
}
(read-utf8.p6を、確認するファイルの名前に置き換えます)
次のコードで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
}