Raku-Kurs / Fortgeschritten / Kontrollfluss / Block-bezogene Phasers / Exercises / Beim Verlassen aufräumen
Lösung: Beim Verlassen aufräumen
Hier ist eine mögliche Lösung der Aufgabe.
Code
sub work {
LEAVE say 'Cleanup';
say 'Working';
return;
say 'never reached';
}
work();🦋 Du findest den Quellcode in der Datei clean-up-on-leave.raku.
Ausgabe
Working
CleanupKommentare
Nachdem
Workingausgegeben wurde, verlässtreturndie Subroutine sofort, sodassnever reachednie ausgegeben wird.Obwohl der Rumpf vorzeitig verlassen wurde, wird der
LEAVE-Phaser beim Verlassen trotzdem ausgelöst und gibtCleanupaus. Diese Garantie ist genau der Grund, warumLEAVEder richtige Ort ist, um Ressourcen freizugeben — er wird ausgeführt, egal wie der Block endet.