Forskjellen mellom Exit & Die i Perl

Forskjellen mellom Exit & Die i Perl


Naturen av Perl betyr at funksjoner ofte er en del av en annen kommando, som arbeider i bakgrunnen. Funksjonene "die" og "exit" er eksempler på denne typen interaksjon. Den "dø" -funksjonen til slutt kaller "exit" med en returverdi. Den "exit" kommandoen evaluerer et uttrykk hvis det finnes, før du avslutter Perl program med en returverdi. Uttrykket for "exit" kommandoen kan være en del av et helt bibliotek av rutiner, og dermed skiller seg fra "dø" i respekt som "die" bare fullfører med en liste som en parameter.

Die Command

Syntaksen til Perl dø kommandoen er "die LIST." En liste er en liste over verdier som i dette eksemplet:

@foo = ($ a, $ b, $ c);

Den venstre side er et Perl array, men høyre side er en liste over verdier tilordne til array.

Verdiene av en liste er utgang til standard feil (STDERR), før du ringer exit i bakgrunnen.

Die Feil Verdier og lister

I prosessen med å kalle kommandoen exit, dør kan gjøre bruk av spesialtegn "$ !." Dette er en feilverdi lagret fra operasjoner som finner sted i programmet.

I kommandoen:

die "Kan ikke endre katalog til spolen: $ \ n" med mindre chdir '/ usr / spool / news / nyeste';

listen er et enkelt element som inneholder verdien "Kan ikke cd til spolen: $ \ n". The $! verdien inneholder feilkoden forbundet med kommandoen, og sendes til kommandoen exit.

Exit Command

Syntaksen for Exit-kommandoen er:

"Exit EXPR."

Uttrykket evalueres før eksisterende tolken (merk forskjellen med Perl dø og "lister" i forhold til EXIT "uttrykk"). Et eksempel på en exit kommando følger:

$ Ans = $ a;

exit 1 hvis $ ans ~ = / test /;

Dette tildeler en verdi til "$ ans" variable og avslutter programmet med en status av en hvis verdien inneholder ordet "test".

Exit Tolk Verdier

Selv om exit ikke returnerer en verdi fra kommando, kan det angi en returverdi til tolk som "exit 0." Programmene på jakt etter returverdien oppmerksom på at det er 0 i dette tilfellet.

Hvis "EXPR" delen av kommandoen finnes, vil den bli vurdert med en verdi, ellers avsluttes det med en null status. Exit går alltid om alle de resterende kommandoer og pakker før du fullfører. Det anbefales at "exit" ikke bør brukes i subrutiner, men "return" eller andre kommandoer som brukes som ikke vil avslutte programmet helt.