# defer
Execute a block when the current scope exits (cleanup).
## Syntax
defer { cleanup-expression }
## Examples
def process-file {|path| set f [fs/open $path] defer { [fs/close $f] } # work with $f... # fs/close runs automatically when function exits }
set resource [acquire-resource] defer { [release-resource $resource] } # resource released even if an error occurs
## Notes
- Deferred blocks run in LIFO order (last defer runs first)
- Runs regardless of whether the scope exits normally or via error
- Similar to Go's `defer`
## See Also
`try`, `def`