The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Prty::Array - Operationen auf Arrays

BASE CLASS

Prty::Object

DESCRIPTION

Ein Objekt der Klasse repräsentiert ein Array.

METHODS

Konstruktor

new() - Konstruktor

Synopsis

    $arr = $class->new;
    $arr = $class->new(\@arr);

Description

Instantiiere ein Array-Objekt und liefere eine Referenz auf dieses Objekt zurück. Ohne Angabe einer Array-Referenz wird ein leeres Array-Objekt instantiiert.

Objekt- und Klassenmethoden

Jede der folgenden Methode kann sowohl auf ein Objekt der Klasse als auch per Aufruf als Klassenmethode auf ein "normales" Perl-Array angewendet werden.

Aufruf als Objektmethode:

    $arr->$meth(...);

Aufruf als Klassenmethode:

    $class->$meth(\@arr, ...);

extractKeyVal() - Extrahiere Paar, liefere Wert

Synopsis

    $val = $arr->extractKeyVal($key);
    $val = $class->extractKeyVal(\@arr,$key);

Description

Durchsuche @arr paarweise nach Element $key und liefere das folgende Element $val. Beide Elemente werden aus @arr entfernt. Kommt $key in @arr nicht vor, liefere undef und lasse @arr unverändert. Vergleichsoperator ist eq.

findPairValue() - Liefere Wert zu Schlüssel

Synopsis

    $val = $arr->findPairValue($key);
    $val = $class->findPairValue(\@arr,$key);

Description

Durchsuche $arr paarweise nach Element $key. Kommt es vor, liefere dessen Wert. Kommt es nicht vor, liefere undef. Vergleichsoperator ist eq.

Returns

Wert oder undef

index() - Suche Element

Synopsis

    $i = $arr->index($val);
    $i = $class->index(\@arr,$val);

Description

Durchsuche @arr vom Anfang her nach Element $val und liefere dessen Index zurück. Kommt $str in @arr nicht vor, liefere -1. Vergleichsoperator ist eq.

last() - Liefere letztes Element

Synopsis

    $e = $arr->last;
    $e = $class->last(\@arr);

maxLength() - Länge des längsten Elements

Synopsis

    $l = $arr->maxLength;
    $l = $class>maxLength(\@arr);

Description

Ermittele die Länge des längsten Arrayelements und liefere diese zurück.

push() - Füge Element am Ende hinzu

Synopsis

    $arr->push($e);
    $class->push(\@arr,$e);

select() - Selektiere Array-Elemente

Synopsis

    $arr2|@arr2 = $arr->select($test);
    $arr2|@arr2 = $class->select(\@arr,$test);

Description

Wende Test $test auf alle Arrayelemente an und liefere ein Array mit den Elementen zurück, die den Test erfüllen.

Folgende Arten von Tests sind möglich:

Regex qr/REGEX/

Wende Regex-Test auf jedes Element an.

Code-Referenz sub { CODE }

Wende Subroutine-Test auf jedes Element an. Als erster Parameter wird das zu testende Element übergeben. Die Subroutine muss einen boolschen Wert liefern.

shuffle() - Verwürfele Array-Elemente

Synopsis

    $arr->shuffle;
    $arr->shuffle($factor);
    $class->shuffle(\@arr);
    $class->shuffle(\@arr,$factor);

Description

Mische die Elemente des Array @arr, d.h. bringe sie in eine zufällige Reihenfolge. Die Operation wird in-place ausgeführt.

Die Methode liefert keinen Wert zurück.

Arguments

@arr

Das zu mischende Array.

$factor (Default: 100)

Faktor für die Anzahl der Vertauschungsoperationen. Es werden Arraygröße * $factor Vertauschungsoperationen ausgeführt.

sort() - Sortiere Elemente alphanumerisch

Synopsis

    $arr | @arr = $arr->sort;
    $arr | @arr = $class->sort(\@arr);

Description

Sortiere die Elemente des Array alphanumerisch.

Im Skalar-Kontext sortiere die Elemente "in place" und liefere die Array-Referenz zurück (Method-Chaining).

Im List-Kontext liefere die Elemente sortiert zurück, ohne den Inhalt des Array zu verändern.

Numerische Operationen

gcd() - Größter gemeinsamer Teiler

Synopsis

    $gcd = $arr->%METHOD;
    $gcd = $class->gcd(\@arr);

Description

Berechne den größten gemeinsamen Teiler (greatest common divisor) der natürlichen Zahlen in Array @$arr bzw. @arr und liefere diesen zurück. Ist das Array leer, wird undef geliefert. Enthält das Array nur ein Element, wird dessen Wert geliefert.

min() - Ermittele numerisches Minimum

Synopsis

    $min = $arr->min;
    $min = $class->min(\@arr);

Description

Ermittele die kleinste Zahl und liefere diese zurück. Enthält $arr keine Elemente, liefere undef.

max() - Ermittele numerisches Maximum

Synopsis

    $max = $arr->max;
    $max = $class->max(\@arr);

Description

Ermittele die größte Zahl und liefere diese zurück. Enthält $arr keine Elemente, liefere undef.

minMax() - Ermittele numerisches Minimum und Maximum

Synopsis

    ($min,$max) = $arr->minMax;
    ($min,$max) = $class->minMax(\@arr);

Description

Ermittele die kleinste und die größte Zahl und liefere die beiden Werte zurück. Enthält $arr keine Elemente, wird jeweils undef geliefert.

meanValue() - Berechne Mittelwert

Synopsis

    $x = $arr->meanValue;
    $x = $class->meanValue(\@arr);

Description

Berechne das Arithmetische Mittel und liefere dieses zurück. Enthält $arr keine Elemente, liefere undef.

standardDeviation() - Berechne Standardabweichung

Synopsis

    $x = $arr->standardDeviation;
    $x = $class->standardDeviation(\@arr);

Description

Berechne die Standardabweichung und liefere diese zurück. Enthält $arr keine Elemente, liefere undef.

variance() - Berechne Varianz

Synopsis

    $x = $arr->variance;
    $x = $class->variance(\@arr);

Description

Berechne die Varianz und liefere diese zurück. Enthält das Array keine Elemente, liefere undef.

median() - Ermittele den Median

Synopsis

    $x = $arr->median;
    $x = $class->median(\@arr);

Description

Ermittele den Median und liefere diesen zurück. Enthält das Array keine Elemente, liefere undef.

Dump/Restore

dump() - Erzeuge einzeilige, externe Repräsentation

Synopsis

    $str = $arr->dump;
    $str = $arr->dump($colSep);
    $str = $class->dump(\@arr);
    $str = $class->dump(\@arr,$colSep);

Description

Liefere eine einzeilige, externe Repräsentation für Array $arr bzw. @arr im Format

    elem0|elem1|...|elemN

Die Array-Elemente werden durch "|" (bzw. $colSep) getrennt. In den Elementen werden folgende Wandlungen vorgenommen:

    undef    -> '' (undef wird zu Leerstring)
    \        -> \\ (Backslash wird verdoppelt)
    $colSep  -> \!
    LF       -> \n
    CR       -> \r

restore() - Wandele einzeilige, externe Repräsentation in Array

Synopsis

    $arr = $class->restore($str);
    $arr = $class->restore($str,$colSep);

Description

Wandele einzeilige, externe Array-Repräsentation (siehe Methode dump()) in ein Array-Objekt und liefere dieses zurück.

VERSION

1.106

AUTHOR

Frank Seitz, http://fseitz.de/

COPYRIGHT

Copyright (C) 2017 Frank Seitz

LICENSE

This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.