问题标签 [perlguts]
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 - Perl 的哪个部分不喜欢 NTFS 连接?
我喜欢 Vista 风格的路径,所以在 XP 机器上我创建了 NTFS 连接C:\Users
->C:\Documents and Settings
和~\Documents
-> ~\My Documents
,所以我只需要编写一种风格的 path C:\Users\me\Documents
。
但是,CPAN::SQLite
当我设置PERL5LIB
为'C:\Users\me\Documents\dev\perl\lib'
. 继承自的出口商Exporter
模块开始抱怨export_to_level
当他们尝试使用它时未定义。
我真的认为它是Exporter
等人,CPAN::SQLite
只是一个受害者,因为它在use 语句中导入$dbh
符号,只是让 perl 抱怨$dbh
没有定义。除此之外,与 XS 相关的模块抱怨没有“引导”方法。
那么有人知道 Perl (Strawberry) 是否对 NTFS Junctions 有特殊问题吗?
ruby - 是否有像 perlguts/illguts 这样的文档用于 ruby?
我最近喜欢用插图说明的 perlguts作为一种有趣且简单的方式来了解事物是如何实现的,而无需挖掘源代码,并且很想阅读此类有关 ruby 的文档。
Perlguts 提供了有关 Perl 解释器工作的一些信息,并描述了如何使用 Perl API。Illguts 是 perlguts 的插图版本。
红宝石有类似的文档吗?
perl - 了解 newRV_inc 与 newRV_noinc
在尝试处理 C 级别的引用时,我似乎无法弄清楚newRV_inc
和之间的区别(在实践中) newRV_noinc
。为此,我模拟了这个小Inline::C
例子。
给出:
谁能帮我理解为什么这段代码会这样?
c++ - 有没有一种简单的方法可以将 json SV 或 C++ 字符串转换为 HV
我的 C++ 类中有一个 json 字符串,我将其转换为 SV 并作为标量返回到我的 perl 模块。我正在解析这个标量并将其转换为我的 perl 模块中的 json。
相反,我想在我的 C++ 类本身中将 json 字符串转换为 HV 或 perl 散列,并将其作为 perl 散列返回给我的 perl 模块。有没有一种简单的方法可以做到这一点。
我终于想把这个 json c 字符串转换为 JSON 对象;
例子:
在我的 test.cpp 我有
我将其转换为 SV(perl 标量)并将其发送到我的 perl 脚本。
在我的 test.pl 中,我使用 JSON::XS 将其编码和解码为 perl hash 或 json。
实际上,我正在寻找的是将 json 编码的 c++ 字符串转换为原生 json 并将其返回到我的 perl 模块。我不确定这是否可能。我知道的一种解决方案是解析 json 编码字符串并将其转换为 perl 哈希并将其发送到 perl 模块,然后 perl 模块将其转换为本机 json。但在这种情况下,解析 json 编码的 c++ 字符串的成本很高,因为我的字符串可能是一个非常长的 json 结构。
但不是这个
- 有没有一种简单的方法可以从我的 c++ 文件中返回一个 perl 哈希($perl_hash_or_arrayref)。
- 或从 c++ 文件返回 json($perl_hash_or_arrayref)。
提前致谢!!
perl - 所有引用都以标量形式存在吗?甚至是明确的?
例如:
将打印以下内容:
似乎0x170fca8 处的 SV = IV(0x170fc98)(数字,IV,标量)引用了0x170fa68 处的PVHV(哈希)SV = PVHV(0x1715970)
我期待类似的东西:
perl - 为什么 Perl 的规范“真”和“假”值 PVNV 在内部?
Perl 有一个规范的 "true" 和 "false" 值,它用于布尔否定的情况!
or not
。
到目前为止一切都很好。
但是,当我查看这些值时Devel::Peek
,很明显它们不等同于文字''
and 1
,它们都是 SV PVNV 值。
我已经用 Perl 5.16.3 和 Perl 5.20.0 对此进行了测试。
PVNV 不是比简单的 IV 大得多吗?这是 Perl 用内存换取速度的例子吗?
perl - refaddr 返回的值是永久的吗?
根据Scalar::Util 的文档,refaddr
工作方式如下:
如果 $ref 是引用,则引用值的内部内存地址作为纯整数返回。否则返回 undef。
但是,这并不能告诉我是否$addr
是永久性的。refaddr
参考值会随着时间而改变吗?例如,在 C 语言中,运行realloc
可以更改存储在动态内存中的内容的位置。这与 Perl 5 类似吗?
我问是因为我想制作一个由内而外的对象,我想知道是否refaddr($object)
会成为一把好钥匙。例如,在 XS 中编程时,这似乎是最简单的。
c++ - PNaCl 链接到目标中的 Perl 内部错误
我正在尝试制作一个使用WebPorts 的 Perl NaCl 端口的 PNaCl应用程序,但是在链接它时出现了一个奇怪的错误。这是我试图构建的简单代码:
对于建筑:
但是在链接时我收到了这个神秘的错误:
链接到 Perl 时,我显然做错了什么,但我不知道是什么。有谁知道这意味着什么?
perl - 如何让 Perl 将整数存储为数字而不是字符串?
我将文本文件中的许多数字解析为包含键和对值数组的相应引用的哈希条目。使用 Devel::Peek 和 Devel::Size 我注意到数字的字符串表示形式存储在此数据结构中,这会浪费内存。我怎样才能摆脱这些字符串表示的记忆(换句话说,我怎样才能把 PVIV 变成 IV)?
perl - How does mro, goto, and set_subname interact?
This is a complex question with regard to mro.pm
, and the interplay with set_subname
, and goto
In troubleshooting a problem, I think the core of my misunderstanding relates to how mro.pm
works -- especially with regard to set_subname
.
What is the difference between these three constructs,
Plain call to
/li>set_subname
Anon sub which wraps a
/li>set_subname
Anon sub which has its name set with
/li>set_subname
Specifically, the Mojo test suits fails with either of these modifications with anon subs applied to Mojo::Utils
's monkey_patch
Running the two variants above against t/mojo/websocket_proxy.t
,
With the 2 (second) option I have
And I get
/li>With the 3 (third) option I have,
And I get
/li>
Obviously, the first version works (it's from the code I linked), the question is why are the other two variants giving me different errors (especially the second variant) and what's happening there -- why don't they work?