File::Typeモジュールを使う。 use strict; use warnings; use Perl6::Say; use File::Type; my ($input_file) = @ARGV; my $ft = File::Type->new; my $type = $ft->checktype_filename($input_file); say $type; このモジュールはファイルの先頭のヘッダみてMIMEtypeを決定しているよう(fileコマンドとかと同じ?)。別に、#!行をみたり、拡張子をみてくれたりはしないので、ソースコードの種類の判定には使えないな。(たいがい、application/octet-streamになる。) 良いのが見つかったらその2へ。