Denne liste er lagt i et array fra en anden usorteret fil og derefter sorteret på denne måde, men sort funktionen i perl laver den fejl at den ikke indsætter tallene under 10 de rigtige steder hvor tal over 10 i hver bogstavgruppe forekommer.
Jeg vil lige høre om der er nogen der ved hvordan jeg får det lavet sådan at f.eks. C1, C2, C3, C4, osv. kommer til at stå rigtigt i listen. i stedet for.
Ville det være et problem at skrive 01, 02, 03, ...?
Hvis det er det, så er jeg bange for, at løsningen nok er at splitte hvert element, og så sortere først bogstaverne i rækkefølge og efterfølgende tallene inden for hvert enkelt bogstav.
En linie fra <INPUTFILE> ser f.eks. således ud: 1 ,C4,4201163 , C4 bliver så sat i values[1] og 4201163 bliver sat i values[2]
Derefter skal den printe arrayet ud igen i <OUTPUTFILE> og linjen skulle så gerne se sådan ud: C4 A 4201163 0 0 P 0 0 0
Listen i mit øverste indlæg er values[1] Jeg vil gerne have at det der bliver udskrevet i <OUTPUTFILE> bliver sorteret efter values[1] som du så pænt gjorde med svaret til min liste.
Måske menes der ( $values[2] !~ /[0-9]/ ) men den er kun sand hvis values[2] ikke indeholder cifre. Hvis $values[2] altid kun indeholder cifre og det skal give fejl når dette ikke er tilfældet vil ( $values[2] =~ /^\d+$/ ) gøre jobbet.
Den virker ikke. Den er sikkert altid sand, da der aldrig står præcis "[0-9]". Det var sådan set bare fordi jeg troede, der var noget du ikke havde fortalt mig.
!= er nummerisk ulighed - højreside er altid nummerisk 0 så sætningen er kun falsk når $values[2] er nummerisk 0 dvs f.eks. når den er tom
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.