今天又遇到一个,一旦需要定义一个局部数组(awk通过把局部变量定义在函数参数列表来实现局部这一特征)那么这个数组可以正常的操作,但是无法对他取长度,一旦使用length(tempArr)会得到这么一个错误:
fatal: attempt to use array `tempArr' in a scalar context
function test(__ARGVEND__, tempArr)
{
for (i=; i<; i++)
{
tempArr[i] = i+
}
# it's right for(j in tempArr)
{
print j " " tempArr[j]
}
# it's right too print length(tempArr)
# but , here's error
}
还有一种更普遍的坑,就是没将变量定义成局部变量!!!