Chapter 7. Associative arrays
7.4. Iteration, foreach
Like awk, SystemTap's foreach creates a loop that iterates over key tuples of an array, not only
values. The iteration may be sorted by any single key or a value by adding an extra plus symbol (+) or
minus symbol (-) to the code. The following are examples.
# Simple loop in arbitrary sequence:
foreach ([a,b] in foo)
fuss_with(foo[a,b])
# Loop in increasing sequence of value:
foreach ([a,b] in foo+) { ... }
# Loop in decreasing sequence of first key:
foreach ([a-,b] in foo) { ... }
The break and continue statements also work inside foreach loops. Since arrays can be large but
probe handlers must execute quickly, you should write scripts that exit iteration early, if possible. For
simplicity, SystemTap forbids any modification of an array during iteration with a foreach.
34