Thread Perl und die Kontexte
(42 answers)
Opened by Muffi at 2014-10-07 10:42 2014-10-07T14:51:22 Muffi Ich sehe das andersherum, weil: Sowohl key als auch value in einem Hash sind Skalare. Von daher müsste die Wertzuweisung an einen Hash-key spontan einen skalaren Kontext erzeugen, was leider nicht der Fall ist. PS: Das Verhalten lässt sich mit ein paar Zeilen Code prüfen: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 #!/usr/bin/perl use strict; use warnings; use Data::Dumper; # erwarte skalaren Kontext bei der Wertzuweisung my %h = ( x => ctx(), ); # erzeugt auf jeden Fall den skalaren Kontext my $y = ctx(); print Dumper \%h, $y; # liefert je nach Kontext eine Liste oder ein Skalar sub ctx{ return wantarray ? (1,2,3) : [1,2,3]; } ### Ausgabe $VAR1 = { 'x' => 1, '2' => 3 }; $VAR2 = [ 1, 2, 3 ]; Das Verhalten hat mit CGI absolut nichts zu tun, kann jedoch zu unsicheren Konstrukten führen, welche im verlinkten Artikel erklärt sind. Last edited: 2014-10-08 12:33:38 +0200 (CEST) |