【发布时间】:2021-06-23 16:06:40
【问题描述】:
我是来了解如何去除重复行的
代码:-
use strict;
use warnings;
my $input = input.txt;
my $output = output.txt;
my %seen;
open("OP",">$output") or die;
open("IP","<$input") or die;
while(my $string = <IP>) {
my @arr1 = join("",$string);
my @arr2 = grep { !$seen{$_}++ } @arr1;
print "@arr2\n";
print OP "@arr2\n";
}
close("IP");
close("OP");
输入:
india
australia
america
singapore
india
america
预期输出:
india
australia
america
singapore
【问题讨论】:
-
我不知道您认为
join语句会做什么,但实际上它什么也没做。循环是多余的,您可以 grep 整个文件并立即打印它。例如。perl -e'print grep !$seen{$_}++, <>;' input > output -
@Noor Perl 的
join用于将字符串片段连接成一个字符串 -
@Noor:请不要在同一个线程中提出新问题。恢复上一次编辑并提出一个新问题。它将帮助人们以更好的方式理解问题。谢谢。
标签: perl