The GNU Awk User's Guide
9.2.5 Functions and Their Effects on Variable Typing
awk is a very fluid language.
It is possible that
awk can't tell if an identifier
represents a regular variable or an array until runtime.
Here is an annotated sample program:
a = 1 # parameter is an array
b = 1
foo(b) # invalid: fatal type mismatch
foo(x) # x uninitialized, becomes an array dynamically
x = 1 # now not allowed, runtime error
Usually, such things aren't a big issue, but it's worth
being aware of them.