Χρήστης:AtouBot/checkmatch.pl χωρίς ξεν δείχνει τις λάθος γραμμές

#!/usr/bin/perl

# αυτό το αρχείο πρέπει να μετονομαστεί σε checkmatch.pl πριν τρέξετε το parsexml.pl

binmode(STDOUT, ":utf8");
binmode(STDIN, ":utf8");

use encoding(UTF8);

@cm_partsofspeech = ('ακρ', 'αντων', 'αρθρ', 'αριθ', 'αρκτ', 'εκφ', 'επιθ-εκφρ', 'επιθ', 'επι', 'επιρ', 'επιφ', 'καταλ-α-επιθ', 'καταλ-αθ-ουσ', 'καταλ-α-ουσ', 'καταλ-επιρ', 'καταλ-θ-ουσ', 'καταλ-ο-ουσ', 'καταλ-ρημ', 'μορφ-αντων', 'μορφ-αρθρ', 'μορφ-επιθ', 'μορφ-κυρ', 'μορφ-μτχ', 'μορφ-ουσ', 'μορφ-ρημ', 'κυρ', 'μτχ', 'μορ', 'ουσ', 'πολυ-ουσ', 'προθ', 'προ', 'ρημ', 'συνδ', 'συντ', 'σμμ', 'χαρ', 'συμβ');

# κρατάμε σελίδες που περιέχουν τουλάχιστον μία φορά 
# {{-μέρος-λόγου-}}
# '''{{PAGENAME}}'''
sub checkmatch {
    $title=$page{'title'};
    foreach $lcode (keys %$contents) {
	$toss=0;
	foreach $pc (@cm_partsofspeech) {
	    if (defined $contents->{$lcode}->{'parts'}->{$pc}->{'text'}) {
		if ($contents->{$lcode}->{'parts'}->{$pc}->{'text'} !~ /^( *)(\n)*(\{\{[a-z]+-κλίσ[^\}]*\}\}( *)\n)?\{\{ξεν-?\|[a-z\-]+\|\{\{PAGENAME/) {
		    $text = $contents->{$lcode}->{'parts'}->{$pc}->{'text'};
		    $text =~ s/^(( *)\n)*//;
		    ($t1,$t2) = split(/\n/,$text , 3);
		    print "$title:$lcode:$pc:$t1....$t2\n";
		}
	    }
	}
    }
    return(0);
}