使用 perl 包时将参数传递给它

2024-04-14

如何在使用包时传递一些参数,例如:

use Test::More tests => 21;   

我无法找到有关此功能的任何有价值的文档。通过这样的论点有什么优点和缺点吗?


use My::Module LIST https://metacpan.org/pod/perlfunc#use-Module-LIST做两件事:1)它require https://metacpan.org/pod/perlfunc#require-EXPRs My::Module; 2) 调用My::Module->import(LIST) https://metacpan.org/pod/perlfunc#import-LIST.

因此,您可以编写模块的import例程来处理以任何您想要的方式传递的参数列表。如果您确实正在编写一个不向调用者的命名空间导出任何内容的面向对象模块,那么这会变得更加容易。

这是一个毫无意义的例子:

package Ex;

use strict;
use warnings;

{
    my $hello = 'Hello';
    sub import {
        my $self = shift;
        my $lang = shift || 'English';
        if ($lang eq 'Turkish') {
            $hello = 'Merhaba';
        }
        else {
            $hello = 'Hello';
        }
        return;
    }

    sub say_hello {
        my $self = shift;
        my $name = shift;

        print "$hello $name!\n";
        return;
    }
}

__PACKAGE__;
__END__

以及使用它的脚本:

#!/usr/bin/env perl

use strict;
use warnings;

use Ex 'Turkish';
Ex->say_hello('Perl');

Ex->import;
Ex->say_hello('Perl');

Output:


$ ./imp.pl
Merhaba Perl!
Hello Perl!  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 perl 包时将参数传递给它 的相关文章

  • 如何使用 Perl 的 DBI 处理 unicode?

    My 美味到 wp perl 脚本 http edward de leau net wordpress 23 compatible wordpress delicious daily synchronization script 20071
  • 如何使用 Perl 提取 HTML 标题?

    有没有办法使用 Perl 提取 HTML 页面标题 我知道它可以在表单提交期间作为隐藏变量传递 然后以这种方式在 Perl 中检索 但我想知道是否有一种方法可以在不提交的情况下执行此操作 比如说 我有一个这样的 HTML 页面 然后在 Pe
  • C# 中参数/参数之间的区别[重复]

    这个问题在这里已经有答案了 可能的重复 参数和参数有什么区别 https stackoverflow com questions 156767 whats the difference between an argument and a p
  • 用 SED 或 PERL 单行匹配并替换多个换行符

    我有一个输入 C 文件 myfile c 如下所示 void func foo void func bar supercrazytag 我想使用 shell 命令插入新的函数原型 这样输出就变成 void func foo void fun
  • 为什么源码中的根包叫“com”? [复制]

    这个问题在这里已经有答案了 在大多数源代码中 根包 文件夹被命名为 com 为什么会这样 它只是约定俗成还是代表着什么 The 习俗 http download oracle com javase tutorial java package
  • 如何安装我的自定义 Python 包及其自定义依赖项?

    我想找到一种方法来安装我自己的 python 包 该包依赖于其他自定义 python 包 我按照本指南创建了我自己的 python 包 https python packaging readthedocs iao en latest htt
  • Perl - 将数组元素句子与变量进行比较

    我使用 grep 返回临时F 文件和 arrayWarning 之间不匹配的数组 my c grep map 1 temporaryF arrayWarning c 里面有很多行 例如 Sun Sep 30 00 05 55 fibre c
  • 如何提高非持久 CGI 进程中的 Moose 性能?

    Moose http search cpan org dist Moose 是一个很棒的对象框架 问题在于 连同它的依赖项一起 它是very大的 我们的分析表明 在我们的平台上 仅加载 Moose 就会在非持久性 CGI 应用程序脚本上产生
  • 如何在 Perl 中将纪元时间转换为正常时间?

    我正在尝试编写一个 Perl 脚本来解析日志 其中每行的第二个值是日期 该脚本接受三个参数 输入日志文件 开始时间和结束时间 开始时间和结束时间用于解析出每行上位于这两个时间之间的特定值 但为了正确运行这个 我将开始和结束时间转换为纪元时间
  • 在 Perl 中使用 POSIX ceil() 出现意外结果

    我一生都无法弄清楚为什么以下会产生这样的结果 use POSIX my g 6 65 my t g 4 my r t g my n r g my c ceil n print c n n 我知道印记太棒了 抱歉 我已经为我的应用程序解决了这
  • “以下对象被‘package:xxx’屏蔽”是什么意思?

    当我加载包时 我收到一条消息 The following object is masked from package xxx 例如 如果我加载testthat http www rdocumentation org packages tes
  • 如何将我的包导入分组到单个自定义包中?

    通常当我编写 perl 程序时 我曾经包含以下包 use strict use warnings use Data Dumper 现在 我想像这样 我不会为每个程序都包含所有这个包 为了那个原因我会将这些全部打包在我自己的包中 喜欢跟随 m
  • 如何使用 -fPIC 标志重新编译 libperl.a 目标文件?

    当试图修复一些问题时出现了这个问题安装问题 https stackoverflow com q 43191675 2173773 with QtCore4 https metacpan org pod QtCore4 在某一点make尝试运
  • 如何在 Perl 脚本中递归查找文件/文件夹?

    我有一个 perl 脚本 我编写了该脚本来递归地搜索 Windows 文件夹中的文件 我输入搜索文本作为 perl 脚本运行时参数 以查找名称中包含此文本的文件 perl脚本如下 use Cwd file1 ARGV 0 res1 glob
  • 传递到 mvn exec:java 时保留参数间距等

    我有一个启动 Maven exec java 进程的 shell 脚本 exec mvn exec java Dexec mainClass Dexec args 现在可悲的是如果我跑步 myMagicShellScript arg1 ar
  • 使用perl求中位数、众数、标准差?

    我有一个数字数组 计算数据集的中位数 众数和标准差的最简单方法是什么 Statistics Basic Mean http p3rl org Statistics Basic Mean Statistics Basic Median htt
  • 不区分大小写的关键字匹配

    我正在编写一种用于解析计算机语言的语法 可以与解析 Eyapp http search cpan org casiano Parse Eyapp 1 182 lib Parse Eyapp pod 这是一个 Perl 包 可以简化常规语言解
  • 打包用来部署跨平台?

    在 Windows 上 应用程序通常打包为 MSI 在 Redhat Linux 上打包为 RPM 可用于将应用程序部署到所有平台 包括不同风格的 UNIX 和 Windows 的最佳开源打包方法是什么 内容包括 exe unix 二进制文
  • 将多个参数传递给 UNIX shell 脚本

    我有以下 bash shell 脚本 理想情况下我会用它来按名称杀死多个进程 bin bash kill ps A grep awk print 1 然而 虽然此脚本有效 但传递了一个参数 端镀铬 脚本名称为end 如果传递多个参数 则它不
  • 在 Perl 中,如何从父进程向子进程发送消息(或信号),反之亦然?

    我正在编写一个管理多进程的程序 这就是我所做的 而且效果很好 但现在 我想将消息从子进程发送到父进程 反之亦然 从父进程到子进程 你知道最好的方法吗 你知道我所做的是否是我想要的正确方法 从子进程到父进程发送消息 信号或共享内存 反之亦然

随机推荐

  • 使用JS将网页直接保存为PDF [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想将网页直接保存为PDF 我所做的是
  • 没有插件目标绑定到 Maven 阶段

    在 Maven 中相当新 通过阅读 Maven 文档官方网站 http maven apache org guides introduction introduction to the lifecycle html 我知道在默认的生命周期中
  • 中止先前正在运行的 Ajax 请求 [重复]

    这个问题在这里已经有答案了 是否可以中止先前运行的 Ajax 请求 var xhr ajax type POST url some php data name John location Boston success function ms
  • 如何在 MongoDB shell 中将 NumberDecimal 转换为 Double?

    我有一个 文本 字段为的文档NumberDecimal type id ObjectId 5d1a202e476381c30cd995a4 test NumberDecimal 0 1 如何将 测试 字段从NumberDecimal to
  • 排除具有特定值的特定记录 SQL Select

    我使用了下面线程中的解决方案 由 AdaTheDev 提供 因为它涉及同一问题 如何在sql select中排除具有特定值的记录 https stackoverflow com questions 15389091 how to exclu
  • 将命令行参数传递给 sql (Postgres)

    如何将命令行参数传递给运行的 sql 文件psql Postgres i e psql mydatabase lt mysqlfile sql arg1 arg2 arg3 这可能吗 Use 变量插值功能 https www postgre
  • 如果 AppsScript 服务已被限制,如何让脚本再次运行?

    我将此绑定脚本添加到谷歌工作表中 试图通过不必在单元格中手动输入工作表名称来节省时间 function sheetname return SpreadsheetApp getActive getName 然后我意识到它不稳定 所以我停止从工
  • 如何修复此 UnknownHostException?

    public static final String readURL String url throws Throwable try InputStream in InputStream fetch url byte bArr readBy
  • Sybase:HAVING 对行进行操作?

    我遇到过以下 SYBASE SQL Setup first create table t id int ts int go insert into t values 1 2 insert into t values 1 10 insert
  • 如何让 AudioKit 从远程 URL 传输音频文件?

    我正在尝试在 iOS 应用程序 Swift 4 中播放来自 URL 的音频文件 我希望它们在下载时缓冲和播放 我非常喜欢 AudioKit 但是对于我来说 我无法弄清楚如何让它读取远程文件 有什么建议么 你找不到它 因为它不在那里 我们从未
  • SQLite Python 插入 - 提供的绑定数量不正确

    如果这是多余的 我很抱歉 我花了很多时间试图找到答案 但提供的技巧似乎没有任何作用 我正在尝试使用 Python 将股票数据的 csv 文档读入 SQLite 雅虎财经 Ticker Open High Low Close Volume A
  • 回调中的 Tornado IOLoop 异常 Celery 工作线程中没有

    我在用tornado ioloop inside celery工人 因为我需要使用 mongodb class WorkerBase gen engine def foo self args callback bar Python Cele
  • 绑定中的 JAXB 空节点

    JAXB无法解析此示例的绑定
  • UTF-8 编码、JSP、jQuery、Spring 的问题

    我在 apache tomcat 6 中有一个带有 spring jsp 和 jquery 的 Web 应用程序 一个 jsp 页面有一个表单 该表单通过 jquery 进行的 ajax 调用将数据发送到我后端的 Spring MultiA
  • .net core azure部署失败:项目文件不存在

    我在 Azure 中设置了一个应用程序服务应用程序 该应用程序设置为在提交到团队服务 git 存储库时部署 到目前为止 这一直工作正常 但部署失败 并显示 MSBUILD error MSB1009 Project file does no
  • php 字符串末尾的 Substr?

    我有这种数组 我会让它变得非常简单易懂 picture artist2 1 thumb jpg artist2 2 jpg artist2 3 thumb jpg artist2 4 jpg artist2 5 thumb jpg 现在我想
  • WPF 断边

    我在使用 WPF 时遇到了一个相当奇怪的问题 当我将按钮放置在窗体上时 它们在设计时看起来很好 在 Windows XP 上看起来也很好 但当应用程序在 Windows 7 上运行时 边缘会损坏 Here is a screen shot
  • 访问 WinForms 中的 ToolStripMenuItem 子项

    H all 我在 Winform 中创建了一个菜单条 但不是动态的 而且这一切都是不可见的 当用户拥有权限时才可见 我的用户名之一拥有完全的权利 为此我写了下面的代码 private void menuActive MenuStrip me
  • 尝试加载动画时 Resources$NotFoundException

    我们在 Google Play 市场上的应用程序在某些设备上抛出了一个奇怪的异常 我看到以下堆栈跟踪 android content res Resources NotFoundException File res anim ani in
  • 使用 perl 包时将参数传递给它

    如何在使用包时传递一些参数 例如 use Test More tests gt 21 我无法找到有关此功能的任何有价值的文档 通过这样的论点有什么优点和缺点吗 use My Module LIST https metacpan org po