A case-alike method is:
var %food = $2
goto %food
:bread | return 2
:apple | return 0.3
:choco | return 1
:milk | return 1.2
:%food | return unknown
or token method
var %food = $2, %country = $3, %fc = $+(%food,.,%country)
goto %fc
:bread.uk | return 2
:bread.us | return 1.3
:apple.uk | return 0.3
:apple.us | return 0.25
:choco.uk | return 1
:choco.us | return 0.85
:choco.nl | return 1.05
:milk.uk | return 1.2
:%fc | return unknown
These :labels (and their tokens) eliminate whole (nested) if elseif chains.
There are much less curly braces.
Most of the code is lined up to the left.
When enough cases and/or subcases, I use this method.
It's short, easy, overviewable, and, regarding efficiƫncy and speed, certainly not worthy different.