我正在从HTML页面上传文件到Perl程序.上传文件后,我想确定文件是空格还是制表符分隔,并且所有值都是整数.如果不是这种情况,那么我想输出一些消息.
我正在考虑读取文件的每个字符并检查它是否是整数.如果失败,那么我将显示输出消息.有一个更好的方法吗?
我检查了几个例子,可以逐行读取整个文件,但是如何读取该行中的每个字符?我应该拆分space
还是tab
文件可以?
这是很容易分裂的两个空格和制表:
my @fields = split /[ \t]/, $line;
但如果它只是一个或另一个,并且你不知道哪个提前,那就有点棘手了.如果您知道输入中应该有多少列,您可以尝试计算每行的空格数和制表符数,并查看是否有正确数量的分隔符.例如,如果应该有5列,并且每行看到4个选项卡,那么用户使用制表符作为分隔符是一个不错的选择.如果两者都不匹配,则返回错误.
检查整数值很简单:
for my $val ( @fields ) { die "'$val' is not an integer!" if $val !~ /^-?\d+$/; }