Thread Ersatz für "wantarray"
(33 answers)
Opened by Kuerbis at 2016-02-01 11:09
Hallo!
Perl 5 Version ( ![]() Code (perl): (dl
)
1 2 3 4 5 6 use Term::Choose qw( choose ); my $d = choose( [ 1 .. 20 ] ); # scalar context: ein Element kann ausgewählt werden my @a = choose( [ 1 .. 20 ] ); # list context: mehrere Elemente können ausgewählt werden Da es in Perl6 gibt es kein wantarray mehr gibt, habe ich es in der Perl6-Version mit der zusätzlichen Option "return" versucht: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 use v6; use Term::Choose; choose( [ 1 .. 20 ], { return => 0 } ); # return == 0 gibt nichts zurück my $d = choose( [ 1 .. 20 ], { return => 0 } ); # return == 1 ein Element my @a = choose( [ 1 .. 20 ] ); # default: return => 2 # return == 2 mehrere Elemente Aber ich habe mir gedacht, eventuell könnte ich es auch so machen: Code (perl): (dl
)
1 2 3 my $nr = 5; my @d = choose( [ 1 .. 20 ], { max_ret => $nr } ); # man kann maximal $nr Elemente auswählen - default unbegrenzt Mehrere Elemente kann man mit der Leertaste markieren. Bis jetzt kommt das Element der aktuellen Cursor-Position auch noch zur Auswahl hinzu. Meine Frage wäre: Falls ich mich für die max_ret-Variante entscheide: sollte bei $nr > 1 die Anzahl der erlaubten Leertaste-Markierungen $nr - 1 sein, oder sollte die Anzahl der erlaubten Leertaste-Markierungen $nr sein, dafür aber das Element der aktuellen Cursor-Position nicht mehr mit ausgewählt werden? Last edited: 2016-02-02 08:52:51 +0100 (CET) View full thread Ersatz für "wantarray" |