Wieso kann kann ich keine Werte wie v1, v12, v122 eintragen?
Inhalt:
Werte im Hash mit dem Buchstaben v am Anfang
Das ist möglich, kommt aber auf die Perl-Version an.
Wenn versucht wird, in einen Hash Werte wie v1 oder v2 oder v33 (oder ähnliches mit v und einer bestimmten Ziffernfolge) ein zu tragen, wird leider keine Zeichenkette sondern ein sogenannter v-String (Versionstring) erzeugt.
Eine böse Falle für Anfänger.
Wenn ich also zum Beispiel mehrere Variablen v1 v2 v3 v4 v5 habe und diese in einen Hash eintragen will, würde ich unbedarft so vorgehen:
use strict;
use warnings;
my %vars = (
v1 => 9.81221,
v2 => 3.13221,
v7 => -1,
h3 => 'a',
x2 => 'ÄÄÄÄ'
);
print $_ for (sort keys %vars);
Sowas erzeugt für v1 und v2 und v7 nicht die Zeichenkette 'v1' bzw. 'v2' bzw. 'v7' als Eintrag wie gedacht, sondern die Werte \x01 bzw. \x02 bzw. \0x7 - also Zeichenketten.
Das Problem ist ab Perl 5.8 behoben, da genau dieser beschriebene Umstand zu Verwirrungen geführt hat.
Wie dann die Werte v am Anfang eintragen?
Es müssen nur die Werte als Zeichenketten 'v1' und ähnliches geschrieben werden.
So geht es:
my %vars = (
'v1' => 9.81221,
'v2' => 3.13221,
'v7' => -1,
h3 => 'a',
x2 => 'ÄÄÄÄ'
);
Auszug
Ergänzungen, Kommentare
Kommentare werden am besten in folgender Form vorgenommen, damit
sie im Inhaltsverzeichnis angezeigt werden (natürlich ohne das <verbatim>):
---+++ Main.??? - 14 Jul 2003 - Betreff