awk里的各种坑

今天又遇到一个,一旦需要定义一个局部数组(awk通过把局部变量定义在函数参数列表来实现局部这一特征)那么这个数组可以正常的操作,但是无法对他取长度,一旦使用length(tempArr)会得到这么一个错误:

fatal: attempt to use array `tempArr' in a scalar context

function test(__ARGVEND__, tempArr)
{ 
    for (i=0; i<10; i++)
    {
        tempArr[i] = i+1
    }
    # it's right

    for(j in tempArr)
    {
        print j " " tempArr[j]
    }
    # it's right too

    print length(tempArr)
    # but , here's error
}

还有一种更普遍的坑,就是没将变量定义成局部变量!!!

原文地址:https://www.cnblogs.com/code-style/p/3566672.html