Thread '3,6-10,16,23' in (3,6,7,8,9,10,16,23) umwandeln
(12 answers)
Opened by mixxer at 2019-08-22 22:28 Quote Am liebsten benutze ich "Bordmittel", also wenn möglich keine Module, kein map() und so wenig RegEx wie möglich. Nur einfache Datenverarbeitung mit Variablen. Manche finden das seltsam (aber ich find's am besten lesbar). :) 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 #!/usr/bin/perl use warnings; use strict; sub text_to_list { my $a = shift; my @b = split(/,/, $a); my ($i, $u); my (@c, @d); for $i (@b) { if ($i =~ /-/) { @c = split(/-/, $i); for $u ($c[0] .. $c[1]) { push(@d, $u); } next; } push(@d, $i); } return @d; } # (3,6,7,8,9,10,16,23) my $i; my @result = text_to_list("3,6-10,16,23"); for $i (@result) { print "$i\n"; } |