Signalai, klaidų apdorojimas
- %SIG
- masyvas, kuriame saugomos nuorodos į funkcijas, kurias reikia
įvykdyti, jei programa "gauna tam tikrą signalą".
- funkcijos yra siejamos su vardais, pvz.: $SIG{QUIT} = sub { die
"Signalas!";};
- yra specialūs indeksai __WARN__ ir __DIE__,
kuriais nurodytos funkcijos bus iškviestos, jei programoje bus vykdomi
warn ir die operatoriai;
- vykdant taip nurodytas funkcijas į atitinkamą %SIG masyvo
elementą nekreipiama dėmesio, kad funkcijose būtų galima naudoti
warn ir die be jokių apribojimų. Įvykdžius per
%SIG{__DIE__} nurodytą funkciją toliau užbaiginėjamas programos
vykdymas (išskyrus tuos atvejus, kai išeinama iš jos per goto
funkcija, išėjimą iš ciklo, arba funkciją die.
- Simbolinė nuoroda liepia vykdyti funkcija iš modulio main; nesimbolinė -
iš einamojo modulio
- DEFAULT atšaukia anksčiau priskirtą funkciją;
- IGNORE nurodo, kad toks signalas turi būti ignoruojamas;
- %SIG gali buti lokalizuotas. Tada visi pakeitimai galios tik kol nebus
išeita iš einamojo bloko
- kill proceso_numeris,signalas
- siunčia nurodytą signalą nurodytam procesui.
- signalas su numeriu 0 tik patikrina, ar imanoma siųsti nurodytą signalą
nurodytam procesui.
- eval išraiška
- sukompiliuojama ir įvykdoma išraiška. Paskutinis suskaičiuotas
rezultatas yra grąžinamas kaip eval reikšmė. Jei buvo kompiliavimo ar
vykdymo klaidų, pranešimų apie jas tekstas yra grąžinamas spec.kintamajame
$@. Jei klaidų nebuvo, $@ garantuotai bus lygi
''.
- eval blokas
- kaip ir ankstesniu atveju, tačiau
blokas
kompiliuojamas tik vieną kartą. Be to turi būti sintaktiškai teisingas, kad viso skripto
kompiliacija būtų sėkminga.
- eval naudojimas
- patikrinimui, ar konkreti realizacija turi tam tikras galimybes (darbas su tinklu,
simboliniai ryšiai ir pan.), bei atliekant operacijas, kurios nebūtinai bus sėkmingos
(vartotojo pateiktos išraiškos skaičiavimas ir pan.)