Thread Perl 5.18 ist erschienen (31 answers)
Opened by Linuxer at 2013-05-21 12:08

pq
 2013-05-21 15:10
#167717 #167717
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
als beispiel zum verständnis möchte ich noch das hier hinzufügen:
bisher war es so, dass folgende beiden hashes auch ihre keys immer in der gleichen reihenfolge lieferten:
Code: (dl )
1
2
3
4
5
6
7
$ perl -wE'
my %a = (13 => 1, 19 => 1);
my %b = (13 => 1, 19 => 1);
say keys %a;
say keys %b;'
1913
1913


die beiden folgenden beispiele aber (aufgrund der anderen reihenfolge in der initialisierung, denke ich), unterschiedliche ergebnisse lieferten:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ perl -wE'
my %a = (13 => 1, 19 => 1);
my %b = %a;
say keys %a;
say keys %b;'
1913
1319

$ perl -wE'
my %a = (13 => 1, 19 => 1);
my %b = (19 => 1, 13 => 1);
say keys %a;
say keys %b;'
1913
1319


die änderung bezieht sich nun auf das erste beispiel, das nun in 5.18 auch unterschiedliche ergebnisse liefern kann:
Code: (dl )
1
2
3
4
5
6
7
$ perl -wE'
my %a = (13 => 1, 19 => 1);
my %b = (13 => 1, 19 => 1);
say keys %a;
say keys %b;'
1319
1913


lediglich bei demselben hash in derselben variable bleibt das ergebnis gleich (sofern sich der hash dazwischen nicht geändert hat).

das scheint allerdings so missverständlich zu sein, dass z.b. der autor von JSON::XS nicht einsieht, warum er sein modul patchen soll.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem

View full thread Perl 5.18 ist erschienen