gpt4 book ai didi

perl - 为什么要在 use 语句后添加 LIST?

转载 作者:行者123 更新时间:2023-12-03 20:25:13 24 4
gpt4 key购买 nike

use File::Spec; 和有什么区别和 use File::Spec qw(rel2abs); ?
信不信由你,我确实尝试过先用谷歌搜索,但我想使用和列表这两个词太模糊了,谷歌找不到任何有用的东西。
为了清楚起见,我的问题不是关于 qw() 的使用。 .我只是在询问它包含的列表。

最佳答案

use Module;
相当于
BEGIN { 
require Module;
Module->import();
}
import 的作用取决于模块。它可能什么都不做,它可能会导出符号,或者它可能会做其他事情。许多模块都有此导出的默认符号列表。
use Module LIST;
相当于
BEGIN { 
require Module;
Module->import(LIST);
}
import 的作用取决于模块。它可能什么都不做,它可能会导出符号,或者它可能会做其他事情。许多模块将导出指定的符号(而不是其他符号)。
use Module ( );
use Module qw( );
相当于
BEGIN { 
require Module;
}
import 未被调用。

File::Spec 没有定义或继承 import 方法,因此 use File::Spec;use File::Spec qw( rel2abs ); 等价于 use File::Spec qw( ); 。 (调用不存在的 import 方法不会导致错误。) use File::Spec qw( rel2abs ); 可能应该是 use File::Spec::Functions qw( rel2abs );

我几乎从不 use Module; ;我更喜欢指定要导入的符号。这有两个好处:
  • 我不导入不需要的符号。避免命名空间污染提供了一些小好处,相当于“减少被惊讶的机会”。
  • 阅读我的代码的人(包括我自己)可以很容易地找到提供导入符号的模块。
  • 关于perl - 为什么要在 use 语句后添加 LIST?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62928701/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com