Because this is Perl, There is more than one way to do it. So although you already have two working propositions, I'll add another version with the next keyword. Combined with loop labels and statement modifiers (postfix if, while etc...) they help make code that looks like plain old English. And it avoid adding another level to a block hierarchy with a if block.
use strict;
use warnings;
my $previous = '';
LINE: while(my $line = <DATA>)
{
# next LINE unless length $line >= 11; ## useless if you're absolu
+tely sure that you can't have a shorter line
# next LINE unless $line =~ m<\S>; ## Checking if the line isn
+'t blank, same as above
my $var = substr($line, 9, 2);
next LINE if $var eq $previous; # with eq or ne instead of == or !
+= this works even for hexadecimal values, or any string of two charac
+ters
# At this point, lines with the same number as the previous have b
+een skipped
$previous = $var;
print $line;
}
__DATA__
AB000000026JHAHKDFK
AB000000028JHKHKHKJ
AB00000003033AFSFAS
AB000000030HJHKH80J
AB000000030LOIKJUJ8
AB0000000324446KJHK
AB000000026JHAHKDFK
AB000000028JHKHKHKJ
AB00000003033AFSFAS
AB0000000324446KJHK
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|