草庐IT

mod-perl2

全部标签

windows - 带有大文本文件的 Perl "out of memory"

我在最新版本的StrawberryPerlforWindows下使用以下代码时遇到问题:我想读入目录中的所有文本文件并处理它们的内容。我目前看不到一种逐行处理它们的方法,因为我想对文件内容进行的一些更改会跨越换行符。处理主要涉及删除大块文件(在我下面的示例代码中,它只是一行,但理想情况下我会运行几个类似的正则表达式,每个都从文件中删除内容)我在大量文件(>10,000)上运行此脚本,它总是因“内存不足!”而崩溃。大于400MB的特定文件上的消息。问题是当我编写一个只处理一个文件的程序时,代码工作正常。机器有8GBRAM,所以我认为物理RAM不是问题。我通读了其他关于内存问题的帖子,但没

windows - 在没有编译器的 Windows PC 上安装 perl 应用程序和支持模块

我正在构建一个perl应用程序,它通过DBD::Pg模块与PostgreSQL数据库交互,并使用Perl/Tk作为它的GUI。它在我的系统上运行得相当好,但我正在设计它供家庭成员用于他们的业务。他们没有C++编译器,也不知道CPAN是什么。目标是不让他们因为必须加载c++编译器而陷入困境,并尽可能避免从源代码构建模块的所有麻烦。我需要将Tk模块连同StrawberryPerl(它包括开箱即用的DBD:Pg)一起安装到他们的计算机上。我该如何着手将此模块与我的应用程序一起包括在内,以便让我的最终用户使用起来更轻松?在安装过程中将我的整个C:\strawberry\perl\site\li

windows - 如何使用批处理文件在 Windows 下为 Perl 程序创建快捷方式?

我正试图对最终用户“隐藏”我的一些Perl程序,以便他们使用起来更轻松。我正在尽我所能使它们远离命令提示符。该程序本身有一个用Perl/Tk设计的GUI,因此他们不必担心命令提示符。我可以写一个快速的批处理文件吗?STARTperl'C:\[somepathhere]\myscript.pl'使用START启动程序,Perl解释器作为我的程序,我的Perl脚本的路径/名称作为参数?我是否必须指定在哪里可以找到perl,或者Windows会因为perl在计算机的PATH变量中而知道吗? 最佳答案 我有一个完全邪恶的VBS脚本和批处理文

windows - 使用 Perl,如何检查具有给定名称的进程是否正在运行?

如何使用Perl检查特定Windows进程是否正在运行?基本上,我想使用“exec”启动一个进程,但只有当它尚未运行时我才应该这样做。那么如何知Prop有特定名称的进程是否正在运行呢?有没有提供此功能的Perl模块? 最佳答案 看看以下使用Win32::OLE的示例模块。它允许您搜索名称与给定正则表达式匹配的正在运行的进程。#!perlusewarnings;usestrict;useWin32::OLEqw(in);submatching_processes{my($pattern)=@_;my$objWMI=Win32::OLE

windows - 如何在 Windows 上的 Perl 中访问其中包含空格的路径?

我正在将UnixPerl脚本转换为在Windows上运行。我在处理包含空格的路径时遇到问题:open(IN,"|C:\\ProgramFiles\\MySQL\\MySQLServer5.1\\bin\\mysql.exe-uroot-ppwd")ordie"$!";上面的代码抛出以下错误:'C:\Program'未被识别为内部或外部命令,我试过像这样在转义的\"中包装:open(IN,"|\"C:\\ProgramFiles\\MySQL\\MySQLServer5.1\\bin\\mysql.exe-uroot-ppwd\"")ordie"$!";但没有快乐。如何处理带空格的路径?

windows - 如何使用 Perl 操作本地数据库?

我是一名Perl程序员,有一些不错的脚本可以使用cURL获取HTTP页面(从URL的文本文件列表)并将它们保存到文件夹中。但是,获取的页面数在千万级别。有时脚本在编号170,000上失败,我必须手动重新启动脚本。它会自动读取URL并查看是否有页面已下载并跳过。但是,如果有几十万,跳回到它停止的地方仍然需要几个小时。显然,这最终不会成功。有人告诉我,与其保存到难以搜索和修改的文本文件,不如使用数据库。我对数据库不太了解,一年前只是在学校服务器上弄乱了MySQL。我只需要能够添加数百万行和几个静态列,快速搜索/修改一个列,然后在lan本地(或一台计算机,如果这很困难)执行所有这些操作。当然

linux - perl 中的系统命令行最大长度

为了减少发出的命令数量,我需要在perl语句中放入尽可能多的字符system("$cmd_and_parameters")在Windows和Linux下,我可以假设的(安全)最大行长度是多少?我的问题是因为需要发出Oetiker“rrdtool套件”的命令,没有使用正确的perl模块(请不要为此责怪我)。我的第一次尝试是使用前面提到的功能,设置$cmd_and_parameters="path_to_rrdtool/rrdtoolupdate$db$timestamp:$value"它可以工作,但速度很慢,考虑到我必须执行的更新次数。因此,在“rrdtoolupdate”允许的情况下,

windows - 为什么此路径无法在 PERL 中打开 Windows 文件?

我尝试使用StrawberryPerl,但让我感到困惑的其中一件事是阅读文件。我尝试过:open(FH,"D:\test\numbers.txt");但是它找不到文件(尽管文件在那里,并且没有权限问题)。等效代码(除文件名外,脚本100%相同)在Linux上运行良好。 最佳答案 根据PerlFAQ5,您应该在DOS/Windows文件名中使用正斜杠(或者,作为替代方案,转义反斜杠)。Whycan'tIuse"C:\temp\foo"inDOSpaths?Whydoesn't`C:\temp\foo.exe`work?Whoops!Y

windows - 在 Windows 上使用包含美元符号的字符串进行 Perl 替换

我在Windows上使用perl,并尝试使用perl做一个单行代码,以使用包含美元符号的windows变量替换文件中的占位符。有谁知道使它与美元符号一起使用的正确用法是什么。我尝试了各种方法,但似乎无法让它发挥作用。例如,我有一个属性文件,其中包含一个token(!MYPASSWORD!),我正在尝试将其替换为:somevalue="!MYPASSWORD!"我有一个批处理文件,它查找一个名为NEWPASSWORD的变量,其中包含密码$abc12345$,我想使用perl替换来替换如下值。请注意,我可能并不总是知道$符号在哪里,所以我无法避开它们。例如,另一个密码可能是abc$124$

windows - 如何在 Windows 上使用 Perl 的默认应用程序打开文件?

我有一个文件目录,我想定期扫描这些文件并使用它们关联的默认应用程序执行。它们不可执行,所以system("file.torrent");不起作用。您如何使用Perl中的关联应用程序运行文件? 最佳答案 标准的Windows方式是使用ShellExecute.在perl中,您可以使用ShellExecute来完成。它在Win32::GUIpackage.没试过。但它看起来很简单。 关于windows-如何在Windows上使用Perl的默认应用程序打开文件?,我们在StackOverflo