问题标签 [perl5.10]
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.
perl - 高效 pre-perl-5.10 等效于 pack("Q>")
更新:Salva 正确地指出我对“Q”包模板的介绍是错误的。它是 ">" 修饰符不会回到 5.8。
Perl 5.10 引入了 pack() 修饰符“>”,对于我使用“Q”的用例,它在big endian中打包了一个无符号四边形(64 位)值。
现在,我正在寻找一个有效的等价物
其中@ints 包含两个 64 位无符号整数。“Q>2”表示“以大端字节顺序打包两个无符号四边形”。显然,我想要这个,因为我(至少暂时)绑定到 5.10 之前的 Perl。
更新2:实际上,经过进一步思考,应该做如下简单的事情:
似乎可以在我的 64 位 x86-64 Linux 上工作。为什么这可能不完全相同pack("Q>2", @ints)
?任何特定于平台的问题?
反过来是什么(即相当于 unpack("Q>2", @ints))?
perl - 在使用“strict refs”时,不能将字符串(“1”)用作子例程 ref
在对各种事件作出反应的 Perl 守护程序中,我试图通过创建匿名子例程在 2 种情况下使用Null 对象模式,它应该只返回一个值 1 aka “true”(请滚动到右侧查看检查子例程LOGIN和ALIVE事件):
不幸的是,我收到了LOGIN事件的运行时错误:
有人知道如何在这里解决吗?
如何为匿名 Perl 子例程提供“函数指针”?
处理程序 => \&sub { 1 }也不这样做。
在 CentOS 5.x 和 6.x 上使用 perl 5.8.8 和 perl 5.10.1
更新:
我也试过以下:
但这无济于事。我认为这排除了某些答案中建议的“缺失的祝福”。
更新 2:
我在原始问题中扩展了源代码片段。背景是:我正在重构我的源代码,因此我已经创建了上面列出的%EVENTS哈希,因此对于每个传入事件(从Flash 客户端通过 TCP-socket 发送的字符串)那里是对验证事件的子例程 ( check ) 的引用和对执行某些操作的另一个子例程 ( handler ) 的引用。我不确定其他子程序是否有效 - 我已经被第一个LOGIN 事件困住了。
我也不明白为什么不检查 => sub { 1 }上面的工作 - sub不应该返回对匿名子例程的引用(当名称被省略时 - 根据perldoc perlref第 4 节)?
更新 3:
打印 Dumper(\%EVENTS)的输出-
perl - perl 5.8 和 5.10 的区别
我正在编译一些与 5.8 和 5.10 之间的差异相关的信息。有人可以指出主要区别,或者告诉我可以从哪里开始我的研究吗?
hash - 在使用“each”迭代哈希时添加新成员
在 perl 5.10.1 中,是否可以在使用each
运算符迭代哈希时将新成员添加到哈希中?
嗯。就像在这段代码中(为谷歌图表准备数据)一样,我有一个数组的哈希值,我试图移动每个数组的最后一个元素:
}
warnings - 使用图表模块时摆脱未定义值的警告
我正在使用 Chart 模块从 CSV 数据生成 PNG 格式的图表:
效果很好,图表看起来不错,但我收到了undef
值警告(上图末尾有 3 个这样的值):
我需要摆脱这些警告,因为它们在这里毫无用处,而且它们使我的 Hudson 工作日志不可读。
所以我试过(在 CentOS 6.4 / 64 位上使用 perl 5.10.1):
但是警告仍然被打印出来。
请问有什么建议吗?
perl - Perl:在 Moose 类中添加编写器拒绝属性访问
我刚开始学习 Moose,并且创建了一个非常基础的课程。这是我的代码:
人.pm
人.pl
此代码死亡的地方是第 8 行。它会打印出第一个 name 属性,但它会抱怨 lnameCan't locate object method "lname" via package "Person" at ./person.pl line 8.
现在,如果我取出writer
in lname,一切都很好,但这有什么意义呢?我意识到我可以使用我创建的 getter,但我很好奇为什么作家会拒绝我访问属性本身?我想我不明白什么...
perl - 摆脱“v-string in use/require non-portable”警告的推荐方法是什么?
一个模块至少需要 Perl 5.10.0。
当我将此模块与 Perl 版本 5.10.0 一起使用时,我收到警告:
在 Perl 5.10.1 中,这个警告被删除了。
避免警告的推荐方法是什么:
regex - 用 \b 匹配俄语单词的边框
这是一个错误还是我在 CentOS 6.5 与股票 perl 5.10.1 上做错了什么(当试图匹配多人游戏聊天日志中的俄语脏话时)?
为什么第一个命令不打印任何内容?
perl - Perl 信号处理程序在 END 块中重置
从 Perl 5.10.1 开始,这按预期工作:信号整数被捕获。
但是这里 SIGINT 并没有被困住。
这可以通过在END
块中再次设置处理程序来解决,如下所示:
但是,如果您有多个块,那将不起作用:必须为每个块重新设置处理程序。
我试图弄清楚这一点,但在perldoc找不到解释。我能找到的唯一提到这种行为的是Practical Perl Programming AD Marshall 1999-2005的脚注
注意 发送到您的脚本的信号可以绕过 END 块。
有人会解释这个吗?
excel - 如何使用perl代码为A的每一列生成excel格式的输出文件,即App和Data的输出文件
这是excel格式的输入文件:
一个 | 乙 | C | D |
---|---|---|---|
应用程序 | 1 | 210101 | 8.1 |
应用程序 | 2 | 210102 | 8.2 |
应用程序 | 3 | 210103 | 8.3 |
数据 | 4 | 210104 | 8.4 |
数据 | 5 | 210105 | 8.5 |
数据 | 6 | 210106 | 8.6 |
如何使用 Perl 以下列方式生成 excel 的输出文件?
输出文件 1(仅包含来自应用程序行的数据):
一个 | 乙 | C |
---|---|---|
1 | 210101 | 8.1 |
2 | 210102 | 8.2 |
3 | 210103 | 8.3 |
输出文件 2(仅包含数据行中的数据):
一个 | 乙 | C |
---|---|---|
4 | 210104 | 8.4 |
5 | 210105 | 8.5 |
6 | 210106 | 8.6 |