问题标签 [typeglob]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
344 浏览

perl - 这里的适当关闭是什么意思

这是直接从Perl Cookbook中提取的代码:

其目的是形成 6 个不同颜色的子程序。在解释部分,书中写道:

这些函数看起来都是独立的,但真正的代码实际上只编译了一次。这种技术节省了编译时间和内存使用。要创建正确的闭包,匿名子例程中的任何变量都必须是词法。这就是循环迭代变量上 my 的原因。

适当的闭包是什么意思,如果my省略了会发生什么?另外,即使不能为词法变量定义 typeglob 并且应该抛出错误,typeglob 怎么会与词法变量一起工作?

0 投票
3 回答
121 浏览

perl - 如何防止在 Perl 中覆盖 sub?

我正在使用遗留代码,并且必须使用require定义 sub 的 .pl 文件foo。我的问题是在我的main::命名空间中已经有另一个 sub foo,稍后在我目前不处理的程序的一部分中调用它。

我需要定义的文件,sub foo {}因为显然它不希望 foo 的事情发生在它通常被调用的地方。就我而言,这很糟糕。

我尝试过使用*fooglob:

当然,这不起作用,因为我只创建了一个别名(正如 brian d foy 在Mastering Perl的第 133 页上指出的那样),因此*old_foo将指向现在的“空”子例程。

有没有办法以某种方式将其中的内容复制*foo{CODE}到其他地方而不是别名?或者是否有另一种方法来解决这个问题?

0 投票
2 回答
251 浏览

perl - 从 perl open() 调试文件句柄

假设我有这样的东西(原谅糟糕的 perl 风格 - 这是别人的 Perl。)

它像这样通过命令行调用update_status.pl foo

我期望发生的事情:/var/config/foo/last_update.status 包含当前时间戳。

实际发生的情况:/var/config/foo/last_update.status 包含旧时间戳。

现在,脚本不会死;它成功完成并将退出代码0返回给bash。这是一个运行 perl 5.10.1 的 Debian Linux 机器。

所以我的问题是:我该如何检查STATUS?Data::Dumper 根本没有帮助。

谢谢。

0 投票
1 回答
59 浏览

perl - 使用 typeglob 继承函数

与第二个示例相比,第一个带有 typeglob 的示例是否有缺点?


0 投票
4 回答
243 浏览

perl - 嵌套子前面的神秘*

_fact 前面 * 的确切功能/目的是什么,以及如何等效地编写它?

0 投票
1 回答
292 浏览

namespaces - Perl:匿名子程序中的原型

我目前正在学习关于类型团和命名空间的 Perls 系统。所以我写了一个模块,它接受两个参数,一个常量的值和名称,并将常量导出给调用者。$package 变量等于 caller[2]。

上面的代码完成了将匿名子例程导出到调用者符号表的工作。因为我的目标是构建自己的常量实现,所以子程序有一个空原型,这意味着它是一个只读子程序。

但这是我的问题:原型不起作用。所以

我的想法有问题吗?还有另一种方法吗?

0 投票
2 回答
232 浏览

perl - 为什么 ref 不返回'GLOB'?

我想更好地理解 typeglobs 并编写小程序:

输出是:

为什么只在最后一种情况下返回GLOB ?

0 投票
1 回答
118 浏览

perl - perl如何确定“原始符号”的类型

显然,可以将“原始符号”(与对符号的引用相反)存储在标量变量中并在标量上下文中使用它。

您如何确定标量值表达式是否是这些符号之一?

它们似乎字符串化"*name_of_symbol"ref返回""。但是Data::Dumper,也能够确定它不是字符串并在不引用的情况下打印它。

是否可以确定您何时拥有原始符号?怎么样Data::Dumper

产生:

我期待ref $sym.

0 投票
2 回答
252 浏览

perl - 使用 typeglob 重新定义 perl 函数不能按预期工作

这个例子工作正常:

这个也是:

但是如果我在 typeglob 中使用函数的全名,它就不起作用并尝试读取文件:

谁能解释为什么我不能通过完整的命名空间重新定义子例程File::Slurp::read_file,并通过短名称使用?

在对象方法的情况下,它工作正常: