在 Perl 中,如何访问另一个包中定义的标量?

2023-12-31

我似乎被困在尝试访问另一个包中定义的标量,并将示例缩小为一个简单的测试用例,我可以在其中重现问题。 我希望能够使用我们的机制访问对“Example”包中定义的列表的引用,但是,Dumper 显示该变量在 example.pl 中始终未定义:

Example.pm 如下所示:

#!/usr/bin/perl -w

use strict;
use warnings;
use diagnostics;

package Example;
use Data::Dumper;

my $exported_array = [ 'one', 'two', 'three' ];
print Dumper $exported_array;

1;

使用这个包的代码如下所示:

#!/usr/bin/perl -w

use strict;
use warnings;
use diagnostics;
use Data::Dumper;

use lib '.';
use Example;

{ package Example;
  use Data::Dumper;
  our $exported_array;
  print Dumper $exported_array;
}

exit 0;

运行此代码后,第一个 Dumper 运行,一切看起来正常,之后,第二个 Dumper example.pl 运行,然后引用未定义:

$VAR1 = [
          'one',
          'two',
          'three'
        ];
$VAR1 = undef;

A my声明不会创建包级变量,也不会在任何名称空间的符号表中输入任何内容。

要执行您想要执行的操作,您必须将第一个文件中的声明更改为

our $exported_array = [ ... ];

然后您可以在另一个文件中访问它

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

在 Perl 中,如何访问另一个包中定义的标量? 的相关文章

  • Perl:测试输入阅读器?

    有没有一种方法可以使用标准 Test 等模块自动测试 Perl 程序是否正在读取输入 例如标准输入正确吗 例如 测试一个从 STDIN 读取两个整数并打印它们之和的程序 这不是 100 清楚你的意思 我会回答假设你想编写一个测试脚本来测试你
  • 在 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 中复制整个目录?

    我需要将整个目录复制到某个位置 最好的方法是什么 File Copy正如我所见 仅逐个文件复制 顺便说一句 我在Windows下工作 感谢帮助 也许调查一下文件 复制 递归 http metacpan org pod File Copy R
  • 快速 Perl signint 处理程序

    收到 Ctrl C 时处理程序清理的最方便 最清晰的方法是什么 例如 当我的套接字服务器以这种方式被终止时 TCP 套接字永远不会关闭 我想要一个很好的衬里 我可以将其放在程序的顶部来设置 sigint 处理程序 或类似 atexit 的东
  • 如何在 Perl 中获取本周的日期?

    我有以下循环来计算本周的日期并将其打印出来 它有效 但我正在考虑 Perl 中日期 时间可能性的数量 并且想听听您对是否有更好的方法的意见 这是我写的代码 usr bin env perl use warnings use strict u
  • 如何忽略 perl 中的“证书验证失败”错误?

    我想访问一个无法验证证书的网站 我正在使用 WWW Mechanize 获取请求 那么如何忽略这一点并继续连接到该网站呢 use IO Socket SSL qw use WWW Mechanize qw my mech WWW Mecha
  • 如何在 Perl 中修改 Windows NTFS 权限?

    我在 Windows Server 2003 上使用 ActiveState Perl 我想在 Windows NTFS 分区上创建一个目录 然后授予 Windows NT 安全组对该文件夹的读取访问权限 这在 Perl 中可能吗 我必须使
  • Perl 脚本中“不在某个 shell 下运行”是什么意思?

    在许多 Perl 脚本中 特别是在著名的 CPAN 发行版中 我发现以下代码 eval exec usr bin perl w S 0 1 if 0 not running under some shell 我想知道它是做什么用的 Than
  • 从函数返回哈希值的最佳 Perl 实践是什么?

    我正在考虑将哈希引用传递给函数或从函数返回数据的最佳实践 一方面 仅将输入值传递给函数并仅返回输出变量似乎很直观 然而 在 Perl 中传递哈希值只能通过引用来完成 因此有点混乱 而且似乎更有可能犯错误 另一种方法是在输入变量中传递引用 但
  • 如何从 Perl 中的文本文件中提取/解析表格数据?

    我正在寻找类似的东西HTML 表格提取 http search cpan org dist HTML TableExtract 只是不适用于 HTML 输入 而是适用于包含采用缩进和间距格式化的 表格 的纯文本输入 数据可能如下所示 Her
  • 在 Perl 中检测全局破坏

    我想检测我的物体是否被DESTROY作为全局破坏的一部分 并打印出警告 因为这显然是一个错误并导致数据丢失 显而易见的方法似乎是 sub DESTROY my self shift if i am in global destruction
  • Perl:非阻塞管道 - 只收到一条消息

    几周前我问了一个关于实现非阻塞单父多子管道的问题 mob 巧妙地回答了这个问题here https stackoverflow com questions 52723489 perl one parent many children sin
  • 如何绑定值 INSERT INTO mysql perl

    我有下面的代码可以工作 但我需要知道如何绑定它们以确保安全 如果我只是将 new row 替换为 并将其放入执行中我收到错误 感谢您的帮助 foreach my field account field order new row param
  • 为什么 Perl 找不到我在 ClearCase 中的文件?

    Perl 的这段代码告诉我 ClearCase 中的文件不存在 但它确实存在 x PATH TO FILE if e x print This file exists on the file system else print I can
  • 如何只读取文件的第一行

    我已经用谷歌搜索了一段时间 但我找不到只读取文件第一行的函数 我需要读取文本文件的第一行并从中提取日期 Perl 新手 open my file lt filename txt my firstLine lt file gt close f
  • Perl 正则表达式匹配模式的多个实例并替换

    我有一个看起来像这样的字符串 abc 1 2 3 something here foo 10 6 34 somethingelse here def 1 2 another 我想将此字符串拆分为一个数组 其中包含 abc 1 2 3 som
  • 如何在 Perl 中找到正则表达式匹配的位置?

    我需要编写一个接收字符串和正则表达式的函数 我需要检查是否有匹配并返回匹配的开始和结束位置 正则表达式已经由qr 该函数还可能收到一个 全局 标志 然后我需要返回所有匹配的 开始 结束 对 我无法更改正则表达式 甚至无法添加 用户可能使用的
  • Perl 三元条件运算符内部赋值问题

    我的程序中的这段 Perl 代码给出了错误的结果 condition a 2 a 3 print a 无论价值如何 condition就是 输出总是3 为什么呢 Perl 中对此进行了解释文档 http perldoc perl org p
  • 在 Perl 中解析 RSS/Atom 的最佳库是什么? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我注意到XML RSS 解析器 http search cpan org dist XML RSS P
  • 为什么这个特定 Perl 脚本的线程版本比非线程版本慢 200 倍?

    A 推介会 http migo sixbit org papers Perl Threads by 米哈埃尔 戈伊克曼 http migo sixbit org 2003 年 Perl 会议上的文档包含两个质数查找脚本的示例 One htt

随机推荐

  • 如何从 Git 中央存储库更新特定文件夹/文件?

    有没有办法在 Git 中单独更新文件夹或文件 我已从中央存储库克隆并希望仅更新特定的文件夹 文件 您可以使用git fetch更新本地克隆中的对象 然后您可以git checkout那些特定的文件 例如 如果您的遥控器称为 origin 并
  • RTSP YouTube 链接

    我已经查遍了谷歌 但无法从 YouTube 视频中获取 rtsp 链接 给定 VIDEO ID 我对如何使用该 id 然后解析 google 的链接感到困惑 感谢您的时间和精力 我找到了这个博客条目 http gdatatips blogs
  • 现实世界 Haskell 第 3 章练习:具有 1 个值构造函数的二叉树 - 后续

    这个问题不是重复的 已存在同标题的问题 https stackoverflow com questions 6613871 real world haskell chapter 3 excercise binary tree with 1
  • 如何在PowerShell中使用curl命令?

    我正在使用curlPowerShell 中的命令通过 Jenkins 作业在位桶拉取请求页面中发布评论 我使用下面的 PowerShell 命令来执行curl命令 但收到下面提到的错误 有人可以帮我解决这个问题吗 CurlArgument
  • 构建 C++ 应用程序时 OSX 系统包含文件的默认路径是什么?

    我正在命令行构建一个 C 应用程序 使用make带有开源库 Xerces 2 8 其中一个文件包括 OSX 系统文件 include
  • 如何禁用继承的 css 样式?

    因此 我使用以下方法创建一个带有圆角的容器 div rounded background CFFEB6 url tr gif no repeat top right div rounded div background url br gif
  • 复制整个命名空间?

    我想复制整个命名空间 同时用动态构造的版本替换一些函数 换句话说 从命名空间开始 import tensorflow as tf 我想复制一份 用我自己的版本替换一些功能 然后更新 globals 所有符号都保留在新的命名空间内 这需要按照
  • 如何运行maven项目?

    我创建了名为的java项目一个报告 我如何将整个项目转移到 Maven 一旦我转移到 Maven 如何在命令提示符下运行 目前我有依赖性的问题 所以我打算转移这个项目 谁能帮助我一步一步的过程 C Jars gt javac cp C Pr
  • 如何将 jQuery UI 图标添加到动态生成的按钮?

    下载 jQuery UI 时 您将获得所选主题的样式表 以及几个包含图标的图像文件 我已经弄清楚如何将图标添加到单个
  • 了解内部/外部模块和导入/需要 Typescript 0.8.2

    有许多 StackOverflow 问题涉及这个主题 但要么与我正在尝试的不太一样 要么是针对以前版本的 TypeScript 我正在开发一个相当大的 TypeScript 项目 并且将给定的模块分解为多个文件 而不是每个类一个 在 0 8
  • nHibernate 3.0.0.4000 在查询中以不同方式处理布尔值?

    我刚刚将 nHibernate 从版本 3 0 0 1002 更新到 3 0 0 4000 一旦我这样做了 我的许多查询就开始失败 其中一个查询是这样的 var items from b in session Query
  • 显示带有照片的相册 (PHP)

    首先 这确实不是 CodeIgniter 特有的 我很难理解一个想法 所以任何了解 PHP SQL 或任何我的问题 的人都可以加入 我有两张桌子 照片 和 相册 Album columns ID TITLE USER ID CREATED
  • Java Tomcat LDAP 身份验证

    由于我使用 Tomcat6 作为 servlet 容器运行 Java 因此我发现使用Tomcat JNDIRealm 功能 http tomcat apache org tomcat 6 0 doc realm howto html JND
  • 使用 docker-compose.yml 中的 Linux 容器在 Windows 主机上挂载 Docker 卷

    我刚刚开始使用 Docker 和 Docker Compose 功能来设置我的 Web 应用程序服务 我正在使用 Linux 容器在 Windows 主机上运行 Docker 我得到了一个名为 db volume 的命名卷 用于 Postg
  • 在一系列文本框中显示 LINQ 列表值?

    我正在创建一个预订系统 客户可以在其中输入预订 ID 并查看所有其他参加的客人 我需要帮助在一系列文本框中显示 LINQ 列表中的值 我们将不胜感激 using System using System Collections Generic
  • 如何在 Bootstrap 3 Glyphicons 中传递数字

    是否有任何选项或解决方案可以传递 Numbers is Bootstrap 3 Glyphicons 就像 Thanks Bootstrap 3 Glyphicons 是否有任何选项或解决方案来传递 Numbers 简而言之 不 这里有所有
  • 将多个 PDF 合并为一个 PDF

    我的代码有一些问题 我正在尝试循环浏览包含许多 PDF 的云端硬盘文件夹 然后将它们合并到一个文件中 当我使用我的代码时 它只是为 Drive 文件夹中的最后一个 PDF 创建一个 PDF 而不是按预期将它们全部合并在一起 function
  • 使用 R 下载 gzip 数据文件、提取和导入数据

    后续行动这个问题 https stackoverflow com questions 3053833 using r to download zipped data file extract and import data 如何使用 R 下
  • 通过 lambda 从另一个集合中排除集合

    这是我的类型 public class myType public int Id get set public string name get set 这种类型有 2 个集合 List
  • 在 Perl 中,如何访问另一个包中定义的标量?

    我似乎被困在尝试访问另一个包中定义的标量 并将示例缩小为一个简单的测试用例 我可以在其中重现问题 我希望能够使用我们的机制访问对 Example 包中定义的列表的引用 但是 Dumper 显示该变量在 example pl 中始终未定义 E