- 论坛徽章:
- 0
|
1,qw不是分隔字符串的意思吗?
比如 @a = qw(this is a test);这样不是就吧整个字符串分开存如数组了吗?
但是我看有的地方在很多程序的开头也有类似的代码?比如
use CGI wq(:standard);这个又是什么意思呢?
qw(this is a test)里面不是一个字符串,而是个字符列表."this is a test"才是个字符串.
当你use某个模块时,默认会导入一些函数或变量,他们通过所在包的@EXPORT这个特殊数组输出.
也有些不常用的方法或方法组没有默认输出,通常放在@EXPORT_OK数组里,他们要被手工导入.
use CGI qw(:standard)这里表示手工导入CGI.pm里的standard方法组,它其实是个函数集合.
这样看下就明白了:
use CGI qw();不导入任何符号及符号集
use CGI qw(:all);导入所有方法
use CGI qw(:standard);导入standard这个方法集合
use CGI;导入默认的方法,可能是什么也没有
use CGI qw(redirect);导入redirect这个方法
2,还有个函数scalar不是求数组元素个数的吗?
比如 $a = scalar(@a);这样就可以得到数组有多少个元素。
但是我看有的地方用到了时间上比如 scalar(localtime());
上面对吗?有什么区别呢?
scalar强迫语句位于标量环境,localtime()函数的返回值是区分列表环境还是标量环境的,若强迫返回值位于标量环境,就得到你想要的那串时间字符串. |
|