我知道我是用来声明一个变量局部的一个块或文件。我一直假设我是一个关键字在Perl。但我只是被告知,它实际上是一个函数。其中一个证明是perldoc将我的“功能”部分,见
http://perldoc.perl.org/functions/my.html。
函数如何做声明局部变量的工作?
解决方法
是的,通过Perl的(非常独特的)定义,我是一个函数。
perlfunc的开始段定义“功能”:
The functions in this section can serve as terms in an expression. They fall into two major categories: list operators and named unary operators.
我是一个命名运算符。但它有两个特点:
>除了像一个函数(分配一个新的变量并返回该变量),它具有编译时效果。
> my …是一个一元运算符,但是当使用括号时,它可以接受多个参数。
如果在另一方面你问我是否是一个函数的C的定义,然后没有。我的不是一个C函数。既不是print,open,chr等。perlfunc中的所有内容都是运算符。它们都不是函数。
最后,print,open和chr比我更接近于一个人对一个函数的概念。更准确地说,很少有人会认为我是一个功能。它更多的是一个技术性的比任何有意义的,它匹配perfunc的函数的定义。
也可以看看:
> What are perl built-in operators/functions?
> Why does this [my
] variable keep its value