我有一个输入文件存在这么多冗余记录,我尝试编写一个程序来删除部分冗余,但似乎仍然存在一些冗余,但我无法找出它有什么问题
ARGV[0] 是带冗余的输入文件
ARGV[1] 是没有输入文件冗余的输出文件
open(Input,"<./$ARGV[0]");
open(Output,">./$ARGV[1]");
while( eof(Input) !=1)
{
push(@Records,readline(*Input));
}
close Input;
# Solution 2
for($i=0;$i<$#Records;$i++)
{
for($j=$i+1;$j<$#Records;$j++)
{
if($Records[$i] eq $Records[$j])
{
$Records[$j] = undef;
}
}
}
@Records = grep defined,@Records;
=begin
# Solution 1 have some problems
for($i=0;$i<$#Records;$i++)
{
for($j=$i+1;$j<$#Records;$j++)
{
if($Records[$i] eq $Records[$j])
{
splice @Records,$j,1;
$j = $j-1;
}
}
}
=end
=cut
foreach $Each(@Records)
{
print Output $Each;
}
close Output;
谢谢