我正在构建一个perl应用程序,它通过DBD::Pg模块与PostgreSQL数据库交互,并使用Perl/Tk作为它的GUI。它在我的系统上运行得相当好,但我正在设计它供家庭成员用于他们的业务。他们没有C++编译器,也不知道CPAN是什么。目标是不让他们因为必须加载c++编译器而陷入困境,并尽可能避免从源代码构建模块的所有麻烦。我需要将Tk模块连同StrawberryPerl(它包括开箱即用的DBD:Pg)一起安装到他们的计算机上。我该如何着手将此模块与我的应用程序一起包括在内,以便让我的最终用户使用起来更轻松?在安装过程中将我的整个C:\strawberry\perl\site\li
我正试图对最终用户“隐藏”我的一些Perl程序,以便他们使用起来更轻松。我正在尽我所能使它们远离命令提示符。该程序本身有一个用Perl/Tk设计的GUI,因此他们不必担心命令提示符。我可以写一个快速的批处理文件吗?STARTperl'C:\[somepathhere]\myscript.pl'使用START启动程序,Perl解释器作为我的程序,我的Perl脚本的路径/名称作为参数?我是否必须指定在哪里可以找到perl,或者Windows会因为perl在计算机的PATH变量中而知道吗? 最佳答案 我有一个完全邪恶的VBS脚本和批处理文
如何使用Perl检查特定Windows进程是否正在运行?基本上,我想使用“exec”启动一个进程,但只有当它尚未运行时我才应该这样做。那么如何知Prop有特定名称的进程是否正在运行呢?有没有提供此功能的Perl模块? 最佳答案 看看以下使用Win32::OLE的示例模块。它允许您搜索名称与给定正则表达式匹配的正在运行的进程。#!perlusewarnings;usestrict;useWin32::OLEqw(in);submatching_processes{my($pattern)=@_;my$objWMI=Win32::OLE
我正在将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"$!";但没有快乐。如何处理带空格的路径?
我是一名Perl程序员,有一些不错的脚本可以使用cURL获取HTTP页面(从URL的文本文件列表)并将它们保存到文件夹中。但是,获取的页面数在千万级别。有时脚本在编号170,000上失败,我必须手动重新启动脚本。它会自动读取URL并查看是否有页面已下载并跳过。但是,如果有几十万,跳回到它停止的地方仍然需要几个小时。显然,这最终不会成功。有人告诉我,与其保存到难以搜索和修改的文本文件,不如使用数据库。我对数据库不太了解,一年前只是在学校服务器上弄乱了MySQL。我只需要能够添加数百万行和几个静态列,快速搜索/修改一个列,然后在lan本地(或一台计算机,如果这很困难)执行所有这些操作。当然
为了减少发出的命令数量,我需要在perl语句中放入尽可能多的字符system("$cmd_and_parameters")在Windows和Linux下,我可以假设的(安全)最大行长度是多少?我的问题是因为需要发出Oetiker“rrdtool套件”的命令,没有使用正确的perl模块(请不要为此责怪我)。我的第一次尝试是使用前面提到的功能,设置$cmd_and_parameters="path_to_rrdtool/rrdtoolupdate$db$timestamp:$value"它可以工作,但速度很慢,考虑到我必须执行的更新次数。因此,在“rrdtoolupdate”允许的情况下,
我尝试使用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上使用perl,并尝试使用perl做一个单行代码,以使用包含美元符号的windows变量替换文件中的占位符。有谁知道使它与美元符号一起使用的正确用法是什么。我尝试了各种方法,但似乎无法让它发挥作用。例如,我有一个属性文件,其中包含一个token(!MYPASSWORD!),我正在尝试将其替换为:somevalue="!MYPASSWORD!"我有一个批处理文件,它查找一个名为NEWPASSWORD的变量,其中包含密码$abc12345$,我想使用perl替换来替换如下值。请注意,我可能并不总是知道$符号在哪里,所以我无法避开它们。例如,另一个密码可能是abc$124$
我有一个文件目录,我想定期扫描这些文件并使用它们关联的默认应用程序执行。它们不可执行,所以system("file.torrent");不起作用。您如何使用Perl中的关联应用程序运行文件? 最佳答案 标准的Windows方式是使用ShellExecute.在perl中,您可以使用ShellExecute来完成。它在Win32::GUIpackage.没试过。但它看起来很简单。 关于windows-如何在Windows上使用Perl的默认应用程序打开文件?,我们在StackOverflo
我的问题基本上说明了一切。我得到这个:C:\DOCUME~1\frew\MYDOCU~1\Code\AIRCRA~1\lib\ACD\VALIDA~1.PM我想要这个:C:\DocumentsandSettings\frew\MyDocuments\Code\aircraft_ducting\lib\ACD\Validators.pm我查看了File::Spec::Win32,但似乎没有任何东西可以解决问题。想法?谢谢! 最佳答案 您可以使用Win32::GetLongPathName($path)来自Win32模块。