Thread Use of implicit split to @_ is deprecated umgehen
(14 answers)
Opened by bianca at 2011-03-12 15:59
Wie kann ich am "saubersten" ermitteln, wieviele durch Komma getrennte Werte eine Variable enthält?
Da solltest du dir aber genau die Randbedingungen abschauen Bei der aktuell vorgeschlagenen Methode @{[split /,/,$feld7]}werden unterschiedliche Werte für die folgenden Strings ausgegeben "3,,,,," ",,,,,3" ",,3,,," Obwhol dies immer nur 1 Wert ist Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 #!/usr/bin/perl -w use strict; machma ("3,,,,"); machma (",3,,,"); machma (",,,,3"); sub machma{ my $wert = shift; my $buff = $wert; print "\n\"$wert\"\n"; print "Array Stunt\n"; print scalar(@{[split /,/,$wert]}); print "\nAnzahl der Felder\n"; print scalar($wert=~s/,(?=.)//g)+1; $wert=$buff; print "\nAnzahl der Felder mit Wert\n"; print scalar($wert=~s/,(?!\,)(?=.)//g)+1; print "\n"; } AUSGABE "3,,,," Array Stunt 1 Anzahl der Felder 4 Anzahl der Felder mit Wert 1 ",3,,," Array Stunt 2 Anzahl der Felder 4 Anzahl der Felder mit Wert 1 ",,,,3" Array Stunt 5 Anzahl der Felder 5 Anzahl der Felder mit Wert 1 FtR PS das mit dem scalar mach ich bewußt auch für deine Lösung um ganz klar den Context zu definieren. Last edited: 2011-03-12 20:43:03 +0100 (CET) Code: ()
1 print&f(($_=(3x3)."3+33")=~s=3(?![^3]|$)=&f=eg); |