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

File: gawk.info,  Node: Dynamic Typing,  Prev: Return Statement,  Up: User-defined

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.

© manpagez.com 2000-2025
Individual documents may contain additional copyright information.