草庐IT

language-perl

全部标签

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

windows - 如何使用 Perl 从 8.3 DOS 路径获取完整的 Win32 路径?

我的问题基本上说明了一切。我得到这个: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模块。

windows - Perl Net::SSH2 scp_put 放入文件然后挂起

我正在使用Net::SSH2的scp_put方法从Windows机器将一个文件放置在我在Unix服务器上的主目录中。我正在使用StrawberryPerl5.12(便携版)。我安装了libssh21.2.5二进制文件,然后从cpan安装了Net::SSH2。这是我的代码片段:subuploadToHost{my$file=@_[0];my$host=@_[1];my$user=@_[2];my$pass=@_[3];my$remotelocation=@_[4];#makesanewSSH2objectmy$ssh=Net::SSH2->new()ordie"couldn'tmakeS

windows - 为什么我在 Windows 上使用 Perl-Tk 构建复杂的 GUI 时遇到问题?

我有一个带有大约50个子窗口的Perl-TkGUI。在每个子窗口中大约有50个按钮和50个菜单(每个菜单有大约4个选项)。当我在UNIX/Linux/Solaris上运行它时,它运行得很流畅。当我在Windows上运行它时,GUI在加载过程中卡住,所以我只能看到一些按钮,或者GUI根本不显示—它似乎卡住了。perl进程使用了​​50000K的内存和100%的CPU使用率。但是当我关闭一些按钮/菜单并再次运行时—没问题。看来,Perl-Tk没有获得足够的内存来在Windows上加载GUI。有什么办法可以让它正常运行吗?是否有任何特殊的配置、标志来告诉windows给Perl-TK一些更多