草庐IT

perl-critic

全部标签

windows - Perl 模块 - dist.ini 和特定于平台的先决条件

如何为我希望模块支持的每个平台(Windows/非Windows)向dist.ini添加条件先决条件?例如在perl代码中我可以这样做:if($^0eq'MSWin32'){requireWin32::Foo;}else{requireBar::Baz;}我如何在dist.ini中迎合每个系统/平台,以便通过cpan/cpanm安装适当的先决条件? 最佳答案 您不能在dist.ini中执行此操作,因为ini文件实际上没有任何方法来执行条件逻辑。但一种方法可能是编写自己的Dist::Zilla插件,如下所示:packageDist::

windows - 我怎样才能让 Perl 6 在 Windows 上运行?

我正在Windows上玩run。用dir尝试它不起作用,但也许我遗漏了一些东西:put'-'x70;my$p1=run'dir',:out;put"exitcode:{$p1.exitcode}";put$p1.out.slurp(:close);put'-'x70;my$p2=Proc.new::out;put"exitcode:{$p2.exitcode}";$p2.spawn:'dir';$p2.out.slurp(:close).say;输出只是规则和退出代码行:----------------------------------------------------------

c++ - 为什么 CRITICAL_SECTION 的 OwningThread 成员是 HANDLE 类型,当它表示线程 ID 时?

我正在尝试为CRITICAL_SECTION解锁代码添加一些调试检查,我尝试了以下操作:...if(m_pCritSect){ASSERT(m_pCritSect->OwningThread==GetCurrentThreadId());LeaveCriticalSection(m_pCritSect);}}通过调试CRITICAL_SECTIONS(使用VS2005,主要在WindowsXP上)我“知道”OwningThread的值(RTL_CRITICAL_SECTION结构的成员winnt中定义.h)是持有锁的线程的第ID的值。然而,线程ID由DWORD(unsignedlong

windows - 在 Windows 上是否有可以与 C 和 Perl 一起使用的**轻量级** IDE?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭7年前。Improvethisquestion当我问这个previously我应该提到它是我特别追求的轻量级IDE,所以我不得不作为另一个问题再次提问。它不仅是一个文本编辑器,而且重量轻且用途广泛,适合StrawberryPerl、MinGW、GDB和Subversion附带的GCC。当我想使用它时,它可以立即使用,并且可以快速关闭以保留我的所有工作。它不是免费或开源程序并不重要,重要的是它稳定且使用起来舒适。也

windows - 如何阻止 Perl 程序在完成后关闭其窗口?

如何阻止我的Perl程序在Windows中完成执行后关闭窗口?我可以运行HelloWorld程序,但它关闭得太快,我无法真正阅读它。print"HelloWorld\n";while(1){sleep(1)}这似乎是我能找到的唯一解决方案,但我敢打赌有更好的方法来做到这一点。 最佳答案 从Windows命令提示符运行您的脚本,而不是单击资源管理器中的图标。当您通过单击图标运行控制台模式程序时,Windows将为该程序打开一个窗口,运行它,然后关闭该窗口。当您从命令提示符运行控制台模式程序时,窗口不会关闭:C:\test>perlhe

windows - 如何在 Perl 中构造独立于操作系统的文件路径,包括可选的 Windows 驱动器号?

我需要在Perl脚本中构建一个文件路径。我应该使用哪个路径分隔符来允许我的脚本在Windows和Unix上工作?请记住,Windows需要一个盘符。 最佳答案 你想要File::Spec的catpath:catpath()Takesvolume,directoryandfileportionsandreturnsanentirepath.UnderUnix,$volumeisignored,anddirectoryandfileareconcatenated.A'/'isinsertedifneedbe.OnotherOSes,$v

windows - 如果在多行替换中死亡,Perl 会报告错误的行号。这是预期的还是错误?

当我运行以下代码时,脚本终止并显示expectedthreeatc:\temp\die.plline13.。usewarnings;usestrict;my$text='onetwoThree';$text=~s{(\w+)#Findaword\s+(\w+)#Findanotherword\s+(\w+)#Findthirdword}{#Insertafewlinesonpurpose#tomakethepoint.die'expectedone'unless$1eq'one';die'expectedtwo'unless$2eq'two';die'expectedthree'unl

windows - 如何在 GUI 中显示 Perl 控制台输出?

我有几个简单的Perl程序写入标准输出,但这有一些问题:我的一些用户被控制台吓坏了我的用户在Windows上工作,所以我的程序输出显示在cmd控制台上,所以我无法控制它的显示方式(颜色和终端大小),更糟糕的是,控制台不是可调整大小(至少在宽度上)为了解决这些问题,我希望能够在一个简单的GUI界面中显示输出作为一个选项。在程序完成之前,GUI应该是响应式的(应该可以在运行时滚动窗口或调整窗口大小)。我可以使用什么简单的工具包和小部件来执行此操作?(我在Windows上使用ActivePerl进行开发)。 最佳答案 您可以使用任何您喜欢

windows - 如何在 Perl 中启动后台进程?

我正在尝试找出如何在perl脚本(在Windows上)中启动后台进程。换句话说,我不希望脚本在重新获得控制权之前等待子进程完成。有没有一种简单的方法只需几行代码就可以做到这一点?我已经查看了系统命令的perldoc,但它似乎没有按照我的要求执行。 最佳答案 参见perlport中的系统:"system(1,@args)产生一个外部进程并立即返回它的进程指示符,而不等待它终止...(Win32)" 关于windows-如何在Perl中启动后台进程?,我们在StackOverflow上找到一

windows - 什么会导致 Perl 系统调用开始失败?

一个小要求:我每天阅读StackOverflow的Perl问题,并尽我所能回答/贡献;今天我需要社区的帮助!Perl设置:我在Windows上运行ActivePerl5.8.8。安装在我们部门服务器的本地驱动器上,该驱动器也共享到网络。所有部门用户都通过指向这个网络安装的Perl在他们自己的PC上运行Perl。这已经工作多年,并没有引起问题,但它是了解问题所需的一条信息。有问题的服务器也是我们的“cron”(计划任务)服务器,处理各种自动化任务。突然上周,Perl脚本(在服务器上)中的系统调用开始失败(详情如下)。起初,我怀疑Perl安装损坏,但所有客户端PC仍然可以毫无问题地运行相同