manpagez: man pages & more
info gawk
Home | html | info | man

gawk: Dynamic Typing

 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 scalar variable or an array until runtime.
 Here is an annotated sample program:
      function foo(a)
          a[1] = 1   # parameter is an array
      BEGIN {
          b = 1
          foo(b)  # invalid: fatal type mismatch
          foo(x)  # x uninitialized, becomes an array dynamically
          x = 1   # now not allowed, runtime error
    In this example, the first call to 'foo()' generates a fatal error,
 so 'awk' will not report the second error.  If you comment out that
 call, though, then 'awk' does report the second error.
    Usually, such things aren't a big issue, but it's worth being aware
 of them.
© 2000-2018
Individual documents may contain additional copyright information.