一言で言えば、私はいくつかのモジュールを使用しようとしていますが、それらは機能せず、警告、エラー、実行時エラー、クラッシュ、何も、結果がありません。具体的には、私は
use strict;
use warnings;
use Lingua::Identify qw(:language_identification);
...
foreach my $f ( @txt ){
my $s = &fileasstring( $f );
my @l = langof( $s ); # problem's here!
&error( "!\nl=".scalar(@l)."\n" );
foreach( @l ){ &error( "!$f\t[$_]\n" ); }
&error( "\n" );
}
'perl langs.pl' を実行した結果の出力は次のとおりです。
[da.txt] reading file
[da.txt] 8 lines read
[da.txt] done
da.txt [Artikel 26. Enhver har ret til undervisning. ... som vedkommende har skabt. ]
l=42
da.txt [da]
da.txt [0.278009331769791]
da.txt [sv]
da.txt [0.126520770367313]
da.txt [nl]
da.txt [0.0886509276813543]
...
そして、一見うまくいったように見える「langs.exe」を実行すると、
[da.txt] reading file
[da.txt] 8 lines read
[da.txt] done
da.txt [Artikel 26. Enhver har ret til undervisning. ... som vedkommende har skabt. ]
l=0
それだけです。langof() からの戻り値はなく、空の配列だけです。
上記のデバッグ情報は、ファイルが正しく読み取られたことを示しています (da、de、en、es、fr、およびその他のいくつかの言語ごとに 1 つずつ)。したがって、少なくともモーションは通過しますが、明らかに perlapp はスローしないモジュールを十分に検出します。コンパイル時または実行時にエラーまたは警告が表示されますが、コンパイルすると、Identify 内のそのルーチンは何も返しません。