Lina: buchstaben- trigrame erzeugen

Beitrag lesen

hallo,

ich will Buchstaben-trigrame aus dem Text erzeugen. Im Programm steckt etwas, das es nicht laufen lässt. Kann jemand ein Blick werfen und mir paar Tipps geben?
Danke.

Gruß,
Lina

#!/usr/bin/perl -w
use strict;

berechnet alle Trigramme (Buchstabenfolge der Länge 3) in einem ##Text und gibt diese mit Häufigkeit aus.

open (IN, "<te1.txt") or die "$!\n";
open (OUT,">te2.txt") or die "$!\n";

while (<IN>) {
  my $line = $_;    ## matches: Abc, abc, Äöü     aber nicht: ABc, paß

while ( $line =~ /([A-ZÄÖÜa-zäöü])([a-zäöü][a-zäöü])(.*)/ ) {
    my $first = $1;
    $first =~ tr/A-ZÄÖÜ/a-zäöü/;
    my $trigram = $first . $2;
    my $trigram_array{$trigram}++ ;
    $line = $2 . $3;  ## ersten Buchstabe wegwerfen!
  }
}

foreach $trigram (sort(keys(%trigram_array))) {
  print $trigram_array{$trigram}, " ", $trigram, "\n";
}

close (OUT)or die "$!\n";
close (IN)or die "$!\n";