【发布时间】:2012-04-07 23:21:46
【问题描述】:
我正在尝试将我的 Perl-Tk 代码限制为仅打开要编辑的文本文件。我正在测试以确保用户选择了一个有效的文件(我正在使用 Tks getOpenFile() ):
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? Perl 怎么会认为只有部分 PDF 是文本?
编辑:-T 是一个文件测试,如果文件是纯文本,则应该返回 true。我不是要检查污点。
【问题讨论】:
-
PDF 可以是有效的纯文本文件。您是否可能在文本编辑器中检查了其中一个作为纯文本命中的文件?
-
这就解释了!只有文本的 PDF 通过,大多数图形的不通过