gpt4 book ai didi

perl - 将我自己的编译指示添加到旧的 perl sw 的正确方法

转载 作者:行者123 更新时间:2023-12-04 15:35:45 35 4
gpt4 key购买 nike

我有一个非常旧的 perl 系统(大约 8-10 年),但是一个很大(100+ pm 文件)。现在由于某种原因需要“重新现代化”它 - 一步一步。

我想做的第一件事就是将我的编译指示插入每个模块:

use MySw::PerlDefs;

什么将包含 Modern::Perl 中的内容和/或在这个问题中: How to make "use My::defaults" with modern perl & utf8 defaults?

QST1:推荐的方式是什么?
  • 添加 use MySw::PerlDefs;所以会得到包 MySw::SomePackage;
    使用 MySw::PerlDefs; #我的新“语用”
  • 或者在包声明之后添加包含在 BEGIN block 中的 PerlDefs?例如:包 MySw::SomePackage;
    BEGIN {use MySw::PerlDefs;} #my new "pragma"in the BEGIN block

  • 问题:
  • 首选方法是什么?
  • 有什么区别和/或缺点?

  • Ps:我理解比编译时执行的BEGIN,但是在上面的上下文中-它不比“简单使用”更好吗?

    最佳答案

    在 BEGIN block 中包装使用是行不通的; lexical pragma 的效果不会超出 block 的末尾。

    比较:

    $ perl -e'BEGIN{ use Modern::Perl; } $x=42; print "$x\n"'
    42
    $ perl -e'use Modern::Perl; $x=42; print "$x\n"'
    Global symbol "$x" requires explicit package name at -e line 1.
    Global symbol "$x" requires explicit package name at -e line 1.
    Execution of -e aborted due to compilation errors.

    关于perl - 将我自己的编译指示添加到旧的 perl sw 的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11071853/

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