问题标签 [strawberry-perl]
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.
regex - 为什么字符串不匹配?
我有一个写字板文件,从中提取两个字符串并进行比较。在这种情况下,它们都是相等的,但我不能使用=~
表达式来评估它们。
我在调试模式下尝试过的内容:
- 两个字符串相等,由
eq
- 两个字符串相等,由
==
- 手动将另一个变量设置为相同的字符串,然后
if
使用新变量执行语句;if($pin_list =~ /$x/){do something}
. 这次尝试是成功的。 - 对两个字符串变量执行
chomp(var)
了几次,然后运行代码。失败的 $tst_pins =~ s/\n//g
删除了两个 var 上的回车。失败的- 两个变量的长度相同。
- 手动打印两个 var 并目视验证两个字符串是相同的。
有人有什么想法吗?我怀疑这与写字板有关,也可能与隐藏字符有关,但不知道如何追踪它。
tchrist -> 好问题。在这种情况下,字符串是相等的,但情况并非总是如此。在正常情况下,我只是在寻找一个字符串作为另一个字符串的子集。
对于那些可能感兴趣的人。问题解决了。
我有一个字符串,我用“+”“加入”。所以字符串如下所示:
“1+2+3+4+a+b+等”
'+' 最终成为问题。在一位同事的建议下,我执行了一个 substr 并将其中一个字符串削减到违规点。它发生在它捕获'+'之后。然后我使用空格而不是“+”加入,一切正常。
使用除字母表之外的不同字符会产生影响,我仍然无法解释为什么当其他所有内容都说它是平等的时候。
布雷特
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 有特殊问题吗?
perl - 在 Cygwin 下的 Strawberry Perl 环境中运行 CPAN shell 时缺少“cpan>”提示
在 Cygwin 下的 Strawberry Perl 环境中运行 CPAN shell 时遇到了一个奇怪的提示问题。
使用启动 CPAN 时,perl -MCPAN -eshell
我得到以下输出:
请不要缺少标准cpan>
提示。为什么会这样,我该如何解决?
键入时quit\n
我得到提示,但在我发出命令后:
database - 使用 Perl 访问 BerkeleyDB 的正确方法是什么?
我在使用 BerkeleyDB 时遇到了一些问题。我有多个相同代码的实例指向一个数据库文件存储库,一切正常运行 5-32 小时,然后突然出现死锁。命令提示在执行 db_get 或 db_put 或游标创建调用之前停止。所以我只是要求以正确的方式处理这些电话。这是我的总体布局:
这是创建环境和数据库的方式:
此代码的单个实例运行,转到一个站点并保存 URL 以供另一个实例解析(我设置了标志,以便每个数据库在锁定时都被锁定):
它会定期检查是否有一定数量的项目处于未排序状态:
在将任何元素添加到任何数据库之前,它首先检查所有数据库以查看该元素是否已经存在:
下一个代码紧随其后,它的许多实例并行运行。首先,它获取未排序的下一项(没有忙碌值“1”),然后将值设置为忙碌“1”,然后对其进行处理,然后将数据库条目完全移动到另一个数据库(它是从未排序中删除并存储在另一个数据库中):
在其他任何地方,如果我在任何数据库上调用 db_put 或 db_del,它都会被这样的锁包裹:
但是,我的 db_get 命令是自由浮动的,没有锁定,因为我认为阅读不需要锁定。
我已经查看了这个代码一百万次,算法是无懈可击的。所以我只是想知道我是否正在实施这个错误的任何部分,使用错误的锁等等。或者是否有更好的方法来防止使用 BerkeleyDB 和 Strawberry Perl 发生死锁(甚至诊断死锁)?
更新:更具体地说,问题发生在 Windows 2003 服务器上(1.5 GB RAM,不确定这是否重要)。我可以在我的 Windows 7 机器(4GB RAM)上运行整个设置。我还开始使用以下命令打印出锁定统计信息:
将此标志添加到环境创建中:
然后每 60 秒调用一次:
状态始终返回为 0,即成功。这是最后的统计报告:
我对此持谨慎态度:
这些死锁是如何发生的,又是如何解决的?(代码的所有部分仍在运行)。在这种情况下,究竟什么是死锁?
perl - 如何在 Strawberry Perl 中更改 @INC?
@INC
在 Strawberry Perl 中,如何在不更改脚本的情况下永久更改?
我知道-I
,但不想每次都调用该开关。
perl - Strawberry Perl - Net::Server 测试在安装期间挂起
安装 Net::Server 时,测试挂在 4/5 上,安装会阻塞,直到我发送中断信号。我试过谷歌搜索,但找不到任何相关的东西。
我在 Windows XP 上使用草莓 Perl 5.12.2
安装输出:
perl - 如何在不擦除 \perl\site\lib\ 和 \perl\site\bin\ 的情况下升级草莓 perl?
我下载了 5.12.3 安装程序来升级我的 5.12.1 安装。安装 5.12.3 后,我之前安装的 cpan 模块不见了。这是预期的行为吗?我应该在升级之前备份我的库以防止这种情况吗?
windows - 突然之间,perl 脚本不起作用,除非我在它们前面加上“perl”并给出脚本的完整路径
我一直在使用我自己的个人环境,该环境已经持续工作了 20 多年。大约 14 年前,我开始合并许多 perl 脚本。22 年来,我一直在使用相同的命令行解释器树(NDOS->4DOS->4NT->TCMD,实际上都是同一个程序)。
我刚从 ActiveState windows perl 切换到 Strawberry Perl。
多年来,这就是我运行 perl 脚本所需的全部内容:
这是您指定使用什么程序打开内容的方式。
我可以简单地做到这一点:
事情刚刚奏效。永远。
今天,在一个使用一周的操作系统中,一切都停止了工作。
Perl 脚本会运行,但它们不会做任何事情。没有错误。没有输出。没有什么。
它工作的唯一方法是如果我在脚本前加上“perl”(在这种情况下,我的路径不会被搜索,因为脚本名称现在是一个参数,所以我不得不填写脚本的完整路径)
这就是成为我的感觉:
请注意,这在昨天运行良好,甚至在今天早些时候。我不知道是什么改变了它,又是什么破坏了它,而且我已经看了很长时间,发现了类似但不相同的问题 - 并且没有任何修复有帮助。
我有一大堆脚本。我真的很讨厌必须在每个人之前插入世界“perl”,然后限定完整路径!
实际上,我可能必须编写一个 perl.bat 包装器,将参数文件名转换为完全限定的路径,并显式调用 perl。
我真的不想那样做。这是一个禁止援助的解决方案。我想了解什么是错误的,地址是,并解决它。
我开始讨厌Windows 7...
perl - 如何安装模块?草莓 Perl 问题
我正在尝试在 Windows 7 上的 Strawberry Perl 中安装 Perl 模块。
我正在运行以下命令,并收到大量我不明白的消息。看起来我收到了 500 个错误,好像该页面无法访问。但是,当我在浏览器中指向镜像时,访问 FTP 目录没有问题。我在 Linux 上几乎没有 Perl 经验,在 Windows 上也没有。我尝试手动将镜像添加到 urllist,但我认为这没有帮助。
windows - 使用 Strawberry Perl 安装模块
到目前为止,我使用ActiveState的ActivePerl,并使用 ppm 来安装模块。
上周我搬到了Strawberry Perl,但我不知道应该如何使用 Strawberry Perl 安装模块。有哪些关于如何使用 Strawberry Perl 完成模块安装的信息,或者是否有一些关于如何安装新模块的链接?