tob*_*ink 17
qw(:ALL)意思是完全一样的(":ALL").它只是一个单项列表,由一个四字符串组成 - 冒号,大写字母A,大写字母L,大写字母L.没有什么令人兴奋的.
许多Perl模块提供可以导入命名空间的函数.例如,该Carp模块提供类似croak和的功能confess.许多此类模块允许您指定要导入的函数列表:
use Carp "confess", "croak", "cluck";
use Carp qw( confess croak cluck ); # this means the same, but looks cleaner
Run Code Online (Sandbox Code Playgroud)
有些模块允许你指定类似":ALL"或":all"或"-all"在该列表中,表示要导入所有他们所提供的功能.File :: Spec :: Functions是执行此操作的模块的示例:
use File::Spec::Functions ":ALL";
use File::Spec::Functions qw( :ALL ); # means the same again
Run Code Online (Sandbox Code Playgroud)
冒号的原因是为了更清楚地表明你没有请求导入一个被调用的函数ALL(这样的函数可能存在 - 实际上,List :: MoreUtils提供了一个函数调用all).这没有技术上的原因; 只是惯例.写一个模块是完全可能的,这样:
use Foo::Bar "ALL";
Run Code Online (Sandbox Code Playgroud)
...导入Foo :: Bar的所有功能.但人们不这样做是因为传统.