未定义的子例程 &main::首先在 hello.pl 第 6 行调用

2024-03-01

我的 Perl 代码面临一个问题。 我创建了一个包“Welcome.pm”,并在脚本“hello.pl”中使用它。但出现以下错误“未定义子例程 &main::First 在 hello.pl 第 6 行调用” 我也查看了其他答案,但仍然无法弄清楚代码有什么问题。

有人可以帮忙吗?

perl 模块 Welcome.pm

package Welcome;

use strict;
use warnings;
use base 'Exporter';
my @ISA = qw(Exporter);
my @EXPORT = qw(First);  

sub First{
print "welcome\n\n";
}


1;

Perl 脚本 hello.pl

#!usr/bin/perl
use UsersModules::Welcome qw(First);
use strict;
use warnings;

First();

文件名和包名必须联系起来,所以语句

package UsersModules::Welcome

必须出现在文件中

UsersModules/Welcome.pm

The @ISA数组需要是一个包变量(声明为our) 代替词汇变量,但最好不要直接操作它

use parent 'Exporter';

然而,最好的选择是import the import子程序来自Exporter而不是继承它,所以你可以写

use Exporter 'import';

The @EXPORT数组也必须是包变量

像这样

package UsersModules::Welcome;

use strict;
use warnings;

use Exporter 'import';

our @EXPORT = qw/ First /;

sub First{
    print "welcome\n\n";
}


1;

如果你想导入一个名为@EXPORT列表,那么就没有必要在你的列表中提及它use陈述。 (如果你把它放在@EXPORT_OK那么你必须在列表中命名它use陈述。)

与上述模块一起,该主程序运行良好

#!usr/bin/perl

use strict;
use warnings;

use UsersModules::Welcome;

First();

output

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

未定义的子例程 &main::首先在 hello.pl 第 6 行调用 的相关文章

  • 多个与单个 Catalyst 应用程序

    我有多个作为 FCGI 运行的 Catalyst 应用程序 将它们整合为具有多个控制器的单个控制器是否有好处 Thanks Simone 内存 大概吧 我认为每台服务器至少要保留 15MB 左右 因此如果您在 3 台服务器上运行 3 个应用
  • 是否有用于 AES 的纯 Perl 模块?

    是否有用于 AES 的纯 Perl 模块 地穴 Rijndael PP http search cpan org dist Crypt Rijndael PP Rijndael 是底层算法AES https secure wikimedia
  • Perl 中字符串之间的字符匹配计数

    我有一个字符串 例如字符串 1 需要与另一个字符串 字符串 2 匹配 两个字符串的长度相同并且不区分大小写 我想打印两个字符串之间的字符匹配数 E g String 1 stranger String 2 strangem Match co
  • 使用 Perl 分割大文本文件

    我必须将一个 1 8Tb 的大文本文件分成两部分 我只需要文件的后半部分 该文件有 n作为记录分隔符 I tried perl ne print if gt line to start from test txt gt result txt
  • Moose:属性值更改时缓存的计算结果会过期吗?

    在我们的类中 我们有一个模式 我们创建一个属性来表示 计算值 出于显而易见的原因 我们想要缓存计算值 然后当基础值之一发生变化时使缓存失效 所以我们目前有这个 package FooBar use Moose has foo gt acce
  • 如何在调试器模式下运行 perl 测试?

    我尝试在调试器下运行测试 perl d which prove t file t 但这没有任何效果 因为每个测试都是作为单独的作业运行的 我已经发现 exec选项 但是当我提供它时 我失去了任何选项 proverc文件和命令行 prove
  • Perl 中的全局变量、子程序变量问题

    如何将子程序变量值转移到另一个子程序变量中 我可以使用全局变量吗 sub foo my myvar Hello sub foo1 my myvar1 myvar how can I get the Hello from myvar 我尝试使
  • OpenSSL DH 密钥太小错误

    我正在尝试使用简单的 PERL 脚本连接到封闭的服务器 空调 usr bin perl use 5 10 1 use warnings use strict use IO Socket SSL use IO Socket SSL qw de
  • 如何将 Perl 转换为 C?

    有没有可用的工具可以将 Perl 源代码转换为 C 源代码 什么平台都可以 对此的规范答案是MJD 的 为什么不将 Perl 翻译成 C http www perl com pub a 2001 06 27 ctoperl html
  • 如何使用 Perl 分割文本文件并将其存储到二维数组中?

    230215 01 16 2000 57533 0 1045403 0 0 217623 230215 01 18 2000 77659 0 1045403 0 0 217624 230215 01 25 2000 76583 0 1045
  • 如何使用 Perl CGI 脚本提供图像?

    我的 Google fu 让我失望了 如何使用 Perl 提供已生成的图像 Example img src getimage pl getimage pl 里有什么 干得好 usr bin perl w my file inner nav
  • 如何对 Data::Dumper 的输出进行排序?

    我想转储对象和散列的值 但它总是乱序打印键 如何按 递归 排序顺序转储键 use Data Dumper print Dumper obj Set Data Dumper Sortkeys 1获取 Perl 的默认排序顺序 如果要自定义顺序
  • 有没有办法匹配任意 Unicode 字母字符?

    我有一些文档经过 OCR 从 PDF 转换为 HTML 因此 他们最终会出现很多随机的 unicode 标点符号 而转换器会搞砸 即省略号等 他们还正确地有一堆非英语但仍然是字母字符 如 和俄语字符等 有没有办法制作一个匹配任何 unico
  • 在 Windows 7 中使用 ActivePerl @ARGV 为空

    我有以下 Perl 脚本 我正在尝试使用 ActivePerl 在 Windows 7 中运行它 c Perl64 bin perl exe w use strict my mp3splt exe c Program Files x86 m
  • Perl 语言的目标是在运行时生成快速的程序吗?

    最近有朋友告诉我 看 Perl 从来就不是为了快而设计的 真的吗 我能找到的相关信息是来自维基百科 http en wikipedia org wiki Perl Overview 该语言旨在实用 易于使用 高效 完整 而不是美观 微小 优
  • 客户端浏览器关闭时服务器端 Perl CGI 脚本中断

    我已经尝试解决一个小问题很长一段时间了 但似乎我无法解决 我编写了一个 HTML 页面 它在提交表单时调用 perl CGI 脚本 该 CGI 在服务器端执行一定数量的任务 我让脚本将这些任务的步骤打印到 HTML 页面上的 iframe
  • 折叠具有多个字段的行

    我有这个代码 awk seen 1 2 a 1 a 1 a 1 t 2 END for i in a print i a i inputfile 我想折叠具有两个以上字段的行 但始终基于第一个字段作为索引 输入文件 三列制表符分隔 prot
  • 如何将 NTLM 身份验证与 Perl 的 SOAP::Lite 模块集成?

    此 Perl 代码适用于对 ASP NET Web 服务的匿名访问 但当打开集成安全性时 该服务会返回 401 错误 我认为我需要将 NTLM 模块与 SOAP Lite 结合使用 但尚不清楚如何做到这一点 如何集成这些组件 use SOA
  • 如何在 Perl 脚本中加密或隐藏密码?

    我正在研究 Perl 脚本 它使用Expect http search cpan org dist Expect通过 telnet 登录到远程计算机 不要问 必须使用 telnet 我还根据需要执行 perforce p4 登录操作 并使用
  • 将 stdin/stdout 从执行进程重定向到 Perl 中的管道

    我试图让执行子进程中的 STDOUT STDERR 通过 Perl 中的管道返回到父进程 我见过的最接近我想做的事情是 http forums devshed com perl programming 6 exec and redirect

随机推荐

  • 如何在自定义 python-sphinx 指令/扩展中使用现有指令?

    我想创建一个自定义的Directive使用现有指令 code block在这个例子中 在它的实现中 reStructuredText 中的手动等效项是 mydirective py code block py print Hello wor
  • Powershell 中非常大的 XML 文件

    对于非常大的文本文件 我们可以选择使用 StreamReader 和 StreamWriter 然后允许逐行查找 替换 但是 我有一个 XML 文件 需要在其中进行查找 替换并进行更多控制 例如查找 替换特定节点中的值 该节点是具有特定属性
  • Git - 如何自动将目录中的更改推送到另一个分支

    完成问题重写 所以我以为我正在非常简单和直接地解释这个问题 但似乎我过于简单化了 所以这里是所有额外的细节 希望这可以帮助每个人看到这也不是重复的 我有一个存储库 项目 我想在其中自动化将提交从一个分支中的一个目录推送到另一个分支的过程 我
  • 使用“:”(冒号)按属性选择元素

    在我的项目中 有一个库生成元素的情况 我需要从那里选择特定的元素 它恰好包含带有 的属性 换句话说 我最终尝试选择使用 document querySelectorAll xml space 但是 在 Chrome 中测试时 它不起作用 也
  • 无法在 Xcode 10 中查找屏幕比例和意外的物理屏幕方向

    我最近将 Xcode 更新到版本 10 现在我的控制台显示 MyApp 1618 133310 AXMediaCommon Unable to look up screen scale MyApp 1618 133310 AXMediaCo
  • 点击 pageControl 滚动到另一个视图(点击点)

    我已经设置了具有 2 个视图的 PageViewControll 我可以在视图之间移动 并且 pageControl 点 对应于正确的页面 但是点击点还不能滚动到正确的视图 我在这里找到了一些关于如何创建该函数的答案 但无法成功实现以使其工
  • 带有自定义操作的 installshield

    我正在使用 installshield 2012 prime 创建一个基本的 msi 项目 我有两个问题 1 MSI 在创建要安装的应用程序的文件夹和文件后需要运行自定义 exe 只需在安装应用程序时执行一次此操作 2 MSI 还需要告诉正
  • iOS MobileVLCKit 存档问题

    在尝试归档我的项目时 我得到了这个error ld bitcode bundle could not be generated because Users MobileVLCKit MobileVLCKit framework Mobile
  • 如何将 Apigility 与现有 ZF2 应用程序结合使用?

    我有一个带有一些模块的 ZF2 应用程序 我希望允许在我的应用程序中使用具有 Apigility 的现有模块 我尝试使用 Composer 安装这些模块 require php gt 5 3 3 phpoffice phpexcel mon
  • 为映射和/或嵌套对象自定义 Spring @RequestParam 反序列化

    RestController class MyController RequestMapping public void test Container container Spring 默认使用 Dot Notation 来反序列化嵌套的
  • 为什么 Google+ 登录完成登录时出错?

    我最近一直在处理 Android 上的 Google 登录问题 有一件事一直困扰着我 在他们所有官方认可的示例中 没有一个方法专门显示登录过程 每次尝试让某人登录时调用的方法称为resolveSignInError 如下所示 private
  • 溢出与 Inf

    当我输入一个大于 max 的数字时double https en wikipedia org wiki Double precision floating point format在 Matlab 中大约是1 79769e 308 例如10
  • NSOutlineView拖线卡住+蓝色边框

    我想要正确的行为蓝色拖动条 and 没有蓝色矩形拖动时 你知道我的错误在哪里吗 如您所见 蓝色条卡在顶部 就像本主题中一样 使用拖放重新排列时 小圆线条卡在 NSOutlineView 顶部 https stackoverflow com
  • 如何在 playwright-java 中切换到新选项卡或窗口?

    我们如何切换到运行测试时打开的新窗口 以及如何返回到 playwright java 中的父窗口 没有像 Selenium 这样的 Switch 操作 您可以使用waitForPage or waitForPopup功能 您只需要知道触发该
  • C 迭代结构体数组

    说我已经声明了一个结构 struct mystruct char a 10 double b struct mystruct array 20 test1 1 0 test2 2 0 lt I just want to declare 2
  • XML 标签、属性及其定义

    我正在寻找一个包含所有 XML 标签及其属性以及这些属性的定义 即它们影响 执行的操作 的列表的地方 我认为 MSDN W3C 甚至 Stack Overflow 上都会有这个 但我在这两个地方以及其他地方都找不到它 可能我在这些网站上查找
  • R 中的波形点 (~.)

    谁能解释一下 R 中的波形点 我已经看过一些关于它的帖子 我知道波形符用于公式 指定自变量和因变量 而且 我知道点用于指示所有其他变量 更具体地说 有人可以解释这个例子中的波形点吗 x lt sample 10 x gt detect gt
  • 链接 PHP 文本

    我正在使用 TinySong api 生成链接 它可以工作 现在我尝试使用 linkify 来生成链接 事实并非如此 我不确定为什么它没有链接 我相信我使用了正确的变量 这是代码
  • Java 中的 Perlin 噪声

    对于我正在从事的元胞自动机项目 我需要使用不同的算法和技术随机生成二维布尔数组 目前 我在应用程序中只有一种类型的随机化 循环遍历数组中的每个单元格并生成随机双变量 然后如果随机数高于 0 5 则将该单元格设置为 true 如果不是 则设置
  • 未定义的子例程 &main::首先在 hello.pl 第 6 行调用

    我的 Perl 代码面临一个问题 我创建了一个包 Welcome pm 并在脚本 hello pl 中使用它 但出现以下错误 未定义子例程 main First 在 hello pl 第 6 行调用 我也查看了其他答案 但仍然无法弄清楚代码