Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:
I wrote a script that checks fields (delimiter is a pipe) where if the last entry has the same last four field entries it will eliminate that last line with the duplicates. The script works but as usual I like to get it to look better and this site always provides a great way to critique and help me write a more efficient script. Please look at the script and advise how I can make it better.
Thanks!
Script:
Thanks!
Script:
data in test4.txt:use strict; my $db = 'C:\Inetpub\wwwroot\cgi-bin\test4.txt'; open(DATA, "$db") || die "Can not open: $!\n"; my @dat = (<DATA>); close(DATA); open(DATA, "$db") || die "NO GO: $!\n"; my @files; foreach (@dat) { my $key = join(" ", (split /\|/, $_)[1,2,3,4]); #print "$key\n"; push(@files,$key); } #print "@files\n"; foreach (@files) { chomp; $key{$_}++; } foreach (keys %key) { if($key{$_} > 1) { #print "$_ \n"; my $db = 'test4.txt'; open(DATA, "$db") || die "Can not open: $!\n"; my @lines = (<DATA>); pop @lines; open(FOUT,"> test4.txt") or die $!; print FOUT @lines; close FOUT; } } close(DATA);
34|4|45|56|45 45|34|45|00|23 45|34|45|00|27 34|4|456|56|03 36|4|456|56|03 #This line will be eliminated after the script is run +because last four fields are the same as the previous line.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Improvement on script needed.
by bm (Hermit) on Sep 08, 2003 at 12:48 UTC | |
Re: Improvement on script needed.
by asarih (Hermit) on Sep 08, 2003 at 12:55 UTC | |
by jeffa (Bishop) on Sep 08, 2003 at 13:56 UTC | |
by Anonymous Monk on Sep 08, 2003 at 14:58 UTC | |
by asarih (Hermit) on Sep 08, 2003 at 15:14 UTC | |
by Anonymous Monk on Sep 08, 2003 at 17:06 UTC | |
by Not_a_Number (Prior) on Sep 08, 2003 at 20:08 UTC | |
Re: Improvement on script needed.
by benn (Vicar) on Sep 08, 2003 at 13:01 UTC | |
by jeffa (Bishop) on Sep 08, 2003 at 14:04 UTC | |
Re: Improvement on script needed.
by Aragorn (Curate) on Sep 08, 2003 at 13:01 UTC |
Back to
Seekers of Perl Wisdom