Leser: 19
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
#!/usr/bin/perl use strict; no warnings; use 5.010; use Data::Dumper; use CGI; my %hash = ( queste => 42, faustus => q(Poodle's core), oxnard => CGI::param('oxnard'), test => 123, ); say Dumper \%hash;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
#!/usr/bin/perl use strict; use warnings; use Data::Printer; my %hash = ( key => get_value('test'), key2 => 33, ); sub get_value { return } p %hash;
QuoteDem Thema habe ich mich auch gewidmet: http://rolf...
2014-10-07T11:45:27 reneeIch finde kontexte eigentlich nicht schlecht, auch wenn es unter Programmiersprachen nicht so häufig vorkommt. Manchmal ist es einfach praktisch.
sub avg { sum(@_) / @_ }
sub avg { sum(@_) / @_.length }
sub avg { sum(@_) / +@_ }
sub avg { sum(@_) / @_.+ }
$line = <STDIN>
@lines = <STDIN>
if ( %h ) {}
if ( scalar keys %h ) {}
$line = <STDIN>.next # oder .first oder wasimmer
if ( %h.+ ) {}
my %hash = (key => 1, key => 2 )
2014-10-07T08:42:58 MuffiWas meinst Du hiermit?- Perl hat keinen vernünftigen Array-Datentyp
- edit: und auch keinen vernünftigen Hash-Datentyp
2014-10-07T14:51:22 MuffiKönnte $cgi->param ein Array zurückliefern statt einer Liste wärs nicht passiert.
Könnte man einen Hash anders belegen als über den Listenweg (mit dem => fake komma) wärs auch nicht passiert.
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 ];
2014-10-07T19:24:57 rostiIch 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.
has 'x' => {is => 'rw', isa => 'Int'};
2014-10-08T14:12:43 MuffiWo lasest du das, steht das beschrieben in irgendeiner Doku oder Mailingliste?Eigentlich sollt wohl => Skalarkontext erzeugen.
2014-10-08T14:12:43 MuffiEigentlich sollt wohl => Skalarkontext erzeugen.
QuoteNaja, das Problem ist halt, dass der => nichts anderes als ein schoenes Komma ist.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
t/14-cgi.t ................................ 1/7 CGI::param called in list context from package HTML::Mason::Utils line 4
8, this can lead to vulnerabilities. See the warning in "Fetching the value or values of a single named parameter" at C:
/strawberry/perl/site/lib/CGI.pm line 436.
CGI::param called in list context from package HTML::Mason::Utils line 48, this can lead to vulnerabilities. See the war
ning in "Fetching the value or values of a single named parameter" at C:/strawberry/perl/site/lib/CGI.pm line 436.
CGI::param called in list context from package HTML::Mason::Commands line 1, this can lead to vulnerabilities. See the w
arning in "Fetching the value or values of a single named parameter" at C:/strawberry/perl/site/lib/CGI.pm line 436.
t/14-cgi.t ................................ ok
t/14a-fake_apache.t ....................... 1/97 CGI::param called in list context from package HTML::Mason::Utils line
48, this can lead to vulnerabilities. See the warning in "Fetching the value or values of a single named parameter" at C
:/strawberry/perl/site/lib/CGI.pm line 436.
CGI::param called in list context from package HTML::Mason::Utils line 48, this can lead to vulnerabilities. See the war
ning in "Fetching the value or values of a single named parameter" at C:/strawberry/perl/site/lib/CGI.pm line 436.
CGI::param called in list context from package HTML::Mason::Utils line 48, this can lead to vulnerabilities. See the war
ning in "Fetching the value or values of a single named parameter" at C:/strawberry/perl/site/lib/CGI.pm line 436.