myk*_*hal 1 perl arguments perl-module
一些Perl模块使用hash参数导入,如:
use Test::Simple tests => 1
Run Code Online (Sandbox Code Playgroud)
这与记录的use使用变体不一致:
Run Code Online (Sandbox Code Playgroud)use Module VERSION LIST use Module VERSION use Module LIST use Module use VERSION从命名模块将一些语义导入当前包,通常通过将某些子例程或变量名称别名到包中.
而在我们的例子中,我们使用哈希而不是列表,至少在语义上 - 当然,
use Test::Simple qw(tests 1)
Run Code Online (Sandbox Code Playgroud)
是等价的,但对于人类局外人来说是没有意义的,他们希望列表是要导入的名称列表.
你如何解释/捍卫这种偏差?是否允许使用参数导入模块是推荐的语法糖?
首先,您应该重读您引用的文档.
从命名模块将一些语义导入当前包,通常通过将某些子例程或变量名称别名到包中.
它不仅仅用于导入潜艇列表.
你如何解释/捍卫这种偏差?
你提到了三个偏差.
=>表示哈希的信念.
这源于误解,即存在散列初始化器这样的事情.解释Perl没有初始化器,=即使它的LHS是%hash或者,也表示普通的赋值my %hash.哈希和数组是变量的类型,而不是数据.
传递给列表的信念use Test::Simple是要导入的符号列表.
我不确定这是怎么回事.如果是,您可以将它们引用到Test :: Simple的文档中.
传递给列表的信念use MODULE是要导入的符号列表.
有很多反例,包括常用的核心模块严格,警告,CGI,CGI :: Carp和Test :: More.
不应该保护任何偏差.这些都不是有用的比喻.
| 归档时间: |
|
| 查看次数: |
175 次 |
| 最近记录: |