gpt4 book ai didi

metadata - -I 有什么区别。和 Perl6 中的 -Ilib?

转载 作者:行者123 更新时间:2023-12-03 06:53:22 24 4
gpt4 key购买 nike

我有一个本地分布,如下所示:

.
├── META6.json
└── lib
└── Foo.pm6

两个 perl6 -I. -e 'use Foo;'perl6 -Ilib -e 'use Foo;'编译并运行,那么我应该使用哪一个,为什么?

最佳答案

问这个问题的另一种方法是“-I $dir-with-meta6-file 和 -I $dir-without-meta6-file 有什么区别?”。在这个答案-I.技术上将引用 -I $dir-with-meta6-file , 和 -Ilib将引用 -I $dir-without-meta6-file .另请注意,这涵盖了 use lib '.'use lib 'lib'-I. 之间的区别和 -Ilib可以简单概括为:

  • -I.将查看 META6.json提供了哪些文件/命名空间及其版本/api/auth
  • -Ilib提供所有现有文件并将它们映射到可预测的命名空间( Foo/Bar.pm6 -> Foo::Bar )并将匹配任何版本/api/auth

  • 一般 -Ilib在开发时使用,特别是在开始时,因为它比手动添加/删除 META6.json 中的条目更容易。文件。如果您正在编写本地应用程序或不打算安装的东西,这通常是可以的。

    然而! -I.应该首选一次 META6.json已为分发创建文件。这可能需要手动维护更多的工作,但它有一些优点:
  • 它提供了一些安装的基本保证;我看到的一个常见问题是模块通过了测试但未能实际安装,因为安装时的预编译只能访问 META6.json 中列出的文件。文件。
  • 它允许将多个命名空间映射到单个文件(我不鼓励这样做)。
  • 你可以拥有 Perl .pm Perl6 旁边的文件 .pm6文件作为一种双语言发行版,因为您可以明确地告诉 Perl6 使用哪些文件。 -Ilib必须考虑所有.pm.pm6文件为 Perl6,这与这个想法不兼容。
  • 关于metadata - -I 有什么区别。和 Perl6 中的 -Ilib?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55661464/

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