John's will only work if the next string is the same as the last string. If you mix up the strings it does not work.
sarge-plain:~# perl -le' my $data = q[aaaaaa cccccc bbb cccccc aaaaaa ]; print $data; $data =~ s/(.*\n)(?=\1)//g; print $data; ' aaaaaa cccccc bbb cccccc aaaaaa aaaaaa cccccc bbb cccccc aaaaaa while Chas' will work for repeating and duplicate strings. #!/usr/bin/perl use strict; use warnings; my %h; while (<DATA>) { print unless $h{$_}++ } __DATA__ AAAAAAAAAAAAA NNNNNNNNNNN BBBBBBBBB CCCCCCCCC AAAAAAAAAAAAA NNNNNNNNNNN BBBBBBBBB CCCCCCCCC AAAAAAAAAAAAA AAAAAAAAAAAAA AAAAAAAAAAAAA NNNNNNNNNNN NNNNNNNNNNN NNNNNNNNNNN BBBBBBBBB BBBBBBBBB BBBBBBBBB CCCCCCCCC CCCCCCCCC CCCCCCCCC sarge-plain:~# ./temp.pl AAAAAAAAAAAAA NNNNNNNNNNN BBBBBBBBB CCCCCCCCC Tony Heal > -----Original Message----- > From: John W. Krahn [mailto:[EMAIL PROTECTED] > Sent: Tuesday, June 12, 2007 3:20 PM > To: Perl beginners > Subject: Re: regex for matching repeated strings > > yitzle wrote: > > Issues with both methods: > > > > John's doesn't work for this data: > > aaaaaa > > aaaaaa > > bbb > > cccccc > > cccccc > > > > I would expect: > > aaaaaa > > bbb > > cccccc > > > > I would get: > > aaaaaa > > bbb > > cccccc > > cccccc > > It works for me: > > $ perl -le' > my $data = q[aaaaaa > aaaaaa > bbb > cccccc > cccccc > ]; > print $data; > $data =~ s/(.*\n)(?=\1)//g; > print $data; > ' > aaaaaa > aaaaaa > bbb > cccccc > cccccc > > aaaaaa > bbb > cccccc > > > > > John > -- > use Perl; > program > fulfillment > > -- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > http://learn.perl.org/ -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/