[Thread Prev][Thread Next]   >Date Index >Thread Index

Re: Anzahl der Keys in einem Hash?

Steffen Beyer - Mon Nov 19 15:51:13 2001

Hello Joerg, Harald, in a previous mail you wrote:

> > Ceterum censeo es muss endlich mal eine verbindliche Sprach-
> > beschreibing (so à la ANSI oder so) her!
> > 
> In einer Perl-Sprachbeschreibung sollte bestenfalls drinstehen,
> dass das Ergebnis eines Hash in skalarem Kontext "nicht
> vorhersagbar" ist.

Solche Aussagen ("nicht vorhersagbar") in einem Standard sind
IMHO ein Armutszeugnis fuer jeden Standard, egal um welche
Sprache oder was auch immer es sich handelt.

Manchmal mag es ja wirklich nicht anders gehen, aber wenigstens
sollte man versuchen solche Aussagen auf das absolute Minimum
zu reduzieren.

> Das waere ja noch schoener, wenn ein
> besserer Hash-Algorithmus nur deswegen nicht in Perl
> eingebaut werden koennte, weil's im ANSI-Perl-Standard
> anders steht....oder, andersrum:

Ja, zugegeben.

> Dass {scalar keys %hash} das richtige Ergebnis liefert,
> kann man aus der Perl-Dokumentation ermitteln, und ich
> betrachte das als sehr wohl als *definiertes Verhalten*.

Ja, das schon, ich meinte auch eher die Tatsache, dass
bisher aber auch noch bei JEDER neuen Perl-Version eins
meiner Module nicht mehr ging... :-(

Und zwar genau deshalb, weil man auf kein definiertes
Interface hin programmieren kann, sondern sich immer
auf den Status Quo beziehen muss - der sich laufend
aendert... :-(

Es ist sogar dokumentiert, dass die Reihenfolge von
Hash-Werten nicht garantiert ist, was natuerlich eine
Konsequenz davon ist, dass sich die Perl-Entwickler
die Moeglichkeit offenhalten, die Hash-Funktion zu
veraendern.

Aber so ganz befriedigt das eben doch nicht, wie das
Beispiel am Anfang dieses Threads gezeigt hat...

> Cheers,
> haj

VlG,
-- 
    Steffen Beyer <sb@engelschall.com>
    http://www.engelschall.com/u/sb/whoami/ (Who am I)
    http://www.engelschall.com/u/sb/gallery/ (Fotos Brasil, USA, ...)
    http://www.engelschall.com/u/sb/download/ (Free Perl and C Software)


Next: