0

我有一个包含我的数据的 excel 文件。我将其保存为制表符分隔的 txt 文件。

但是如果我做一个简单的 perl 脚本:

open(IN, '<', 'myfile.txt') or die;
while (defined(my $line = <IN>)){
    print "$line\n";
}
close IN;

它只打印出一行,但它包含所有数据 - 仅在一行中如果我使用另一个数据文件,没有问题,所以我认为将 excel 文件转换为 txt 文件存在问题。

有谁能够帮我?

4

3 回答 3

0

我将循环更改为:

while(my $line = <IN>) { ... }

没有必要使用defined()。

于 2013-10-09T13:35:23.483 回答
0

试试吧while (<IN>)。你的情况胜过while魔法..

于 2013-10-09T12:54:15.693 回答
0

我不确定这是否已经回答。但是,首先确保您的代码中有以下内容:

use strict;
use warnings;

这将为您提供否则会收到的调试帮助。使用上述内容将为您提供更多可以提供帮助的消息。

当我将您的打开命令放入我正在处理的当前程序中时,我收到了以下调试消息:

Name "main::IN" used only once: possible typo at ./test.pl line 37

您可能还想使用文件句柄,以便 Perl 可以记住去向。这是在 Perl 中打开文件的“新”方式,在线 perldoc 对此进行了说明。只需搜索“perl 文件句柄打开”。我学会了以这种方式做我的公开赛:

open my $in '<', 'myfile.txt' or die;

然后,您可以运行以下命令:

while ( my $line = <$in> ) { ... }

如果您曾经被介绍过 Perl 的默认变量,那么有一个更好的方法可以做到这一点,但我认为您没有,所以上述解决方案可能是最好的。

于 2013-10-10T20:02:54.627 回答