Cursus Raku / Geavanceerd / Besturingsstructuren / Blokgerelateerde phasers / Exercises / Opruimen bij verlaten
Oplossing: Opruimen bij verlaten
Hier is een mogelijke oplossing voor de opgave.
Code
sub work {
LEAVE say 'Cleanup';
say 'Working';
return;
say 'never reached';
}
work();🦋 Je kunt de broncode vinden in het bestand clean-up-on-leave.raku.
Uitvoer
Working
CleanupOpmerkingen
Nadat
Workingis afgedrukt, verlaat dereturnde subroutine onmiddellijk, dusnever reachedwordt nooit afgedrukt.Hoewel de body vroegtijdig verlaten werd, wordt de
LEAVE-phaser toch uitgevoerd bij het verlaten, en druktCleanupaf. Deze garantie is precies waaromLEAVEde juiste plek is om resources vrij te geven — het wordt uitgevoerd ongeacht hoe het blok eindigt.