編集するテキストファイルのみを開くようにPerl-Tkコードを制限しようとしています。私は、ユーザーが(私はTKS getOpenFile()
を使用しています)有効なファイルを選択したことを確認するためにテストしています:テキスト-TとPDFのPerlファイルテスト
if ((defined $file) and (-f $file) and (-T $file)) {
#work with file
}
私はに実行した問題は、一部のPDFファイル(-T試験に合格し、開かれますということです多くの混乱を引き起こす)。私はPDFでいっぱいのディレクトリでこのコードを試しました:
#!/usr/bin/perl
use strict;
use warnings;
my @files = <*>;
foreach (@files) {
if (-T) { print "$_ is a text file\n"};
}
ディレクトリの約1/2のPDFが印刷されます。
私は-Tを間違って使用していますか? PDFをフィルタリングする正規表現を追加する必要がありますか?そして、どのようにしてPDFの一部だけがテキストであるとPerlが考えるのでしょうか?
EDIT:-T
は、ファイルがプレーンテキストの場合はtrueを返すファイルテストです。私は汚れをチェックしようとはしていない。
PDFは有効なプレーンテキストファイルです。テキストエディタでプレーンテキストとしてヒットしたファイルの1つをチェックしましたか? –
それはそれを説明するだろう!テキストはPDFのみが通過し、ほとんどグラフィックは表示されません – charlesbridge