Hi Everyone,
[root@]# cat a.txt
a;b;c;64O
a;b;c;d;ee;f
[root@]# cat a.pl
#!/usr/bin/perl
use strict;
use warnings;
my $tmp3 = ",,a,,b,,c,,d,,e,,f,,";
open(my $FA, "a.txt") or die "$!";
while(<$FA>) {
chomp;
my @tmp=split(/\;/, $_);
if ( ($tmp[3] =~ m/^(64O)/i) || ($tmp[4] =~ m/^(64O)/i) || ((!$tmp[3]) && (!$tmp[4])) ) {
#print $_;
} else {
if ( ((length($tmp[3]) == 1) && (length($tmp[4]) > 1) && (rindex($tmp3, ",,".substr($tmp[3],0,length($tmp[3])).",,") != -1)) ) {
print "$tmp[0];$tmp[1];$tmp[2];$tmp[3];$tmp[4]";
}
}
}
[root@]#
[root@]# ./a.pl
a;b;c;d;ee
[root@]#
this a.txt in real word is having lots of lines, i find the line with "length, rindex, substr" this if code, runs very slow. any better way to improve it?
Thanks