next up previous contents index
Next: Bug in Perl Version Up: Besonderheiten der Skriptsprache Perl Previous: Besonderheiten der Skriptsprache Perl

Listen, aber keine Records

In Perl gibt es keine Datenstruktur des Records, wie sie von Pascal oder C bekannt sind.

Es ist jedoch möglich, einen Record mit bis zu zwei Einträgen, mit gewissen Grenzen bzgl. der Funktionalität, mittels eines assoziativen Arrays nachzubilden.

Konkret wurde ein Record der folgenden Struktur benötigt:

    struct node
    {
      char   *str;
      long   count;
    };

In Perl kann dies so realisiert werden:

    $node{$str} .= $entry . ' ';

Die einzelnen Einträge werden also einfach aneinandergehängt, wobei das Leerzeichen als Trennmarkierung verwendet wird.

Um die Anzahl der gleichen Einträge festzustellen, wird der String in ein Array umgewandelt:

    @array = sort(split(' ', $node{$str}));

danach alphabetisch sortiert und die Anzahl der jeweils gleichen Einträge gezählt (siehe Routine &countItems, [*]).



Copyright Munich Network Management Team