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