草庐IT

perl-critic

全部标签

windows - 在 Windows 下为 Perl 编译 PAR

我已经从http://par.perl.org/wiki/Main_Page下载了PAR并在阅读README文件后编译它。我使用dmake-4.12-20090907而不是来自http://search.cpan.org/dist/dmake/的nmake(因为1.5不起作用).安装过程中没有问题(重复安装过程无济于事,没有警告,只是文本输出更少),但是没有pp.exe或类似的东西。我用的是WindowsXP,所有的编译都是在c盘上完成的。perl-v“这是为MSWin32-x86-多线程构建的perl5,版本12,颠覆2(v5.12.2)” 最佳答案

windows - 如何在 Windows 上保持 ssh 连接打开并将其与 perl 一起使用?

我正在尝试处理我的一个旧脚本,该脚本是我写到我的VMware服务器上的备份文件的。最初该脚本只能在Linux上运行,但现在我想弄清楚如何让它在Windows上运行。我需要的大多数perl模块都可以在Windows和Linux上运行,这很好。但是有一个模块我似乎找不到,它是一个SSH模块。我的计划是使用putty或plink向服务器发送命令并将它们返回给脚本。但我看到的问题是,每次我在脚本中调用putty时,它都会打开与服务器的新连接,并在完成后关闭它。我正在寻找的是一种打开连接的方法,一旦连接打开就保持打开状态,然后从该连接发送和接收。只有当脚本调用关闭函数或其他东西时才关闭它。知道我

c# - 如何使用 WriteEvent 将事件记录为 Critical

我正在尝试使用以下方法将事件级别设置为严重:WriteEvent(id,categoryName,EventSeverity.ErrorCritical,entry);但是在事件日志中它只显示事件级别为错误而不是严重。我还需要设置其他配置和参数吗? 最佳答案 您是说Microsoft.SharePoint.Administration.EventSeverity吗?它由ShP使用并映射到它自己的事件日志。使用映射到Windows事件日志的System.Diagnostics.EventLogEntryType的正确方法:ErrorW

windows - 当 Cygwin 的 Perl 启动带有反引号的程序时,无法触发系统调试器转储核心

我有使用反引号启动任意进程的脚本。偶尔会发生崩溃(例如,零除法),并且在发生这种情况时需要获取核心转储以进行分析。我已经在操作系统中注册了一个perl脚本作为崩溃处理程序(这在Windows7中——我知道你想知道),它会使用崩溃的PID进行调用;处理程序附加了Microsoft的“cdb”调试器,它创建了所需的转储。我的测试“crasher”程序是一个C++可执行文件,它执行除零(Crasher.exe)。问题:当我使用Cygwin的Perl实现时,程序崩溃永远不会触发崩溃处理程序。我怀疑Perl正在捕捉问题并默默地放弃它。使用来自ActiveState的Perl一切正常。问题:我怎样

windows - Perl + Apache + CGI

如何从本地主机运行perl脚本?我已经安装了Apache2.2和ActivePerl5.16.3。我能够从命令提示符运行perl脚本。但由于我正在处理Web应用程序,我希望它从本地主机运行。但是,我在浏览器中收到以下错误内部服务器错误服务器遇到内部错误或配置错误,无法完成您的请求。请帮帮我! 最佳答案 您的问题可能与Apache的配置有关。(可能是Apache需要为.cgi脚本配置)-如果是这种情况,那么您可以在这里找到很好的信息:http://www.perlmonks.org/?node_id=44536http://www.c

windows - 如何在 Perl 中以管理员模式打开命令提示符

我需要以管理员身份在命令提示符下运行命令。当我通常使用system()命令发送命令以在命令提示符下运行时,我没有管理员级别提升。如何获得管理员级别的权限来运行我的指令?我可以右键单击cmd.exe并选择“以管理员身份运行”以在管理员模式下手动打开命令提示符。谢谢!编辑如果未安装7-Zip,我将尝试安装7-Zip。(您需要安装“wget”命令(*来自Cygwin或GnuWin32)才能运行下面的代码片段)useCwd;useFile::Spec;my$cwd=getcwd();my$winpath=File::Spec->catdir($cwd);if(!(-e"C:\\ProgramF

windows - Perl:停止在 Windows 中使用 perl "system"启动的命令

在Perl中,我在两个不同的windows命令行(Cmd)中启动了两个命令,如下:system("start$cmd1");system("start$cmd2");基本上,这两个命令会继续运行,直到我使用“CTRL+C”停止它们。我的问题是:如何向每个Cmd行(或命令)发送“CTR+C”?谢谢。 最佳答案 我觉得你可以用my$pid=system(1,$cmd1);#Oneofthefollowing:kill(INT=>$pid);#SendsCtrl-Ckill(TERM=>$pid);#SendsCtrl-Breakkill

windows - 使用 MinGW 在 Win10 上安装 perl 时出错

如果这个问题的位置不对,我深表歉意,请将我重定向到合适的部分。我对从命令行安装有些生疏,尤其是在Windows上。我决定在我的PC上安装最新的Perl版本,在Windows10下运行。我之前使用StrawberryPerl下载安装它,但由于它有几个版本已经过时,我决定删除它并更新我的技能(ha)手动安装它。我从https://www.perl.org/get.html#win32下载了最新的Perl版本并且一直在阅读README.win32以确保我正确安装了它。因为我需要一个编译器,所以我决定使用Gcc和dmake.我安装并可以成功运行它们,所以回到安装Perl。按照说明,我尝试在Pe

windows - 为什么我的 Perl 脚本和 Windows 的 SendTo 不能使用超过 20 个文件?

我正在尝试模拟RapidCRC在WindowsVistaUltimate64位上检查文件名中的crc32值的能力。但是,我似乎遇到了某种参数限制。我写了一个快速的Perl脚本,创建了一个批处理文件来调用它,然后在%APPDATA%\Microsoft\Windows\SendTo中放置了一个批处理文件的快捷方式当我选择大约20个或更少的文件时,这非常有效,右键单击并“发送到”我的批处理文件脚本。但是,当我选择更多时,什么也没有发生。我怀疑某处存在字符或参数数量限制。希望我遗漏了一些简单的东西,并且解决方案或解决方法不会太痛苦。引用资料:批处理文件(crc32_inline.bat):c

windows - 套接字对、perl、KEEPALIVE 和轮询

我已经开始在linux和windows上使用socketpairs来捕获两个平台上子进程的输出。我通过将STD*复制到socketpair中的一个套接字上来做到这一点(我在perl中使用Win32::SocketPairforsocketpair'sonwindows)。我这样做的主要原因是读取不会阻塞输出文件句柄。我遇到的问题是kill(0,...)在Windows上不起作用,所以我需要另一种方法来检测进程是否关闭。我查看了SO_KEEPALIVE,但这似乎不适用于socketpairs.../p>然后我开始研究套接字上的事件轮询。POLLHUP事件看起来很有希望,但我不确定它们像这