Min Perl String Split ikke virker

Perl programmeringsspråk inneholder mange innebygde datatyper og funksjoner, noe som gjør det egnet for bruk i ulike situasjoner-fra-fil håndtering til Web-kommunikasjon til streng manipulasjon. Det er imidlertid viktig å vite hvordan du skal bruke de innebygde funksjonene i Perl, slik at de fungerer som de skal. Den "split" funksjon, for eksempel, krever et bestemt sett av input og output data for å produsere korrekte resultater.

Perl Strings

I Perl, som i mange andre programmeringsspråk, representerer en av de grunnleggende datatyper et ord eller en setning. Denne datatypen er en streng med tegn og kalles en "streng". Strenger kan lagres i normale variabler innledes med "$" karakter. Når en streng er tildelt en variabel, kan du bruke string operatører og funksjoner for å endre strengen. Så, når du ringer for strengfunksjoner som en "split", er det best å sikre at en variabel som inneholder en rekke brukes.

Delimeters

Du kan lese strenger fra en rekke eller kilder. Ofte, når informasjonen fra en streng til en data-analyse av funksjon, inneholder strengen "skilletegn" til logisk separate data. En skilletegn er et utpekt symbol, vanligvis ikke-alfanumerisk, som signaliserer en pause mellom to stykker av data. Skilletegn kan komme i noen form, men vanligvis de vises som tegnsettingssymboler, for eksempel et kolon eller komma. Du må ikke bare levere et skilletegn til en delt funksjon, men du må også sørge for at skille matcher den som brukes i strengen. Hvis ikke, vil du motta uventede resultater.

arrays

Arrays funksjon i Perl mye på samme måte som matriser fungere i andre programmeringsspråk, eller i det minste i gjennomføringen. Arrays representerer en samling av data, ofte av samme datatype, organisert under samme variabelnavnet og indeksert av heltall som starter på 0. En rekke kan inneholde noen form for datatype. I Perl, er en matrise innledes med "@" symbol. Siden split funksjonen returnerer en matrise, er det viktig å sørge for at du tilordner resultatet av delingen til en matrise og ikke til noen annen form for variabel eller datastruktur.

Perl "Split"

Det er nødvendig å vurdere alle faktorer av "split" -funksjonen til å bruke den. Funksjonen tar to argumenter: For det første, skilletegn som brukes til å splitte strengen, og andre, den variabelen som inneholder strengen, eller en streng bokstavelig. Du må også tilordne returverdien av funksjonen til en matrise. Til slutt må du sørge for at skilletegnet definert i det første argumentet korresponderer med den avgrensende ordningen i selve strengen. Følgende eksempler illustrerer mulige feil og, til slutt, en riktig bruk av "split:

$ Streng1 = "Dette er en streng";
$ String2 = "Dette er en annen, string";
$ Heltall1 = 5;

@holding;

@holding = split (/, /, $ Heltall1); // Prøver å splitte et heltall, feil
$ Streng1 = split (/, /, $ streng2); // Tildele returverdi til en ikke-array, error
@holding = split (/: /, $ streng2); // Feil skilletegn, feil

@holding = split (/, /, $ streng2); //korrekt