草庐IT

perl-critic

全部标签

c++ - 如何将 Perl Interpreter 嵌入到制作 DLL 的 C++ 应用程序中?

我需要一个用C++构建的DLL,里面有Perl解释器和一个Perl库exiftoolPhilHarvey被C++函数调用。我想在安装了VisualStudio2010VC++的Windows7上执行此操作。哪个Perl发行版最适合此任务:Strawberry或ActiveStatePerl?另外,哪个Perl编译命令:nmake或dmake?最后的最终交付物应该是一个DLL。这可以导入到任何C等程序中,并且将调用DLL函数,这些函数将在内部调用PhilHarvey的exiftool。库函数/参数/开关。 最佳答案 如果你已经安装了P

windows - 如何在 Windows 上同时使用 ActiveState 和 Strawberry perl

我已经安装了ActiveState。由于安装LibXML很容易,我安装了Strawberry。所以目前,我有2个perl程序,ActiveState和Strawberry。要使用Strawberry,我需要删除ActiveState,因为它是Perl的默认设置。我如何保留这两个程序并将Strawberry设置为类路径中的默认值? 最佳答案 右键单击“我的电脑”。单击“属性”。点击“高级系统设置”。点击“环境变量...”。选择“路径”。点击最近的“编辑”。从“变量值”中删除ActivePerl的bin目录。将StrawberryPer

windows - 如何将 sqlite 与我的 Perl for Windows 应用程序打包在一起?

我需要在Windows机器上为Perl设置sqllite。但是-Perl可能从中央服务器通过网络运行,我不知道在我的脚本初始运行时哪些模块可用。我可以保证Perl5.8+(activestate)或Perl5.10+(strawberry)。因此,我需要在项目目录本身中打包sqlite和相关的Perl模块。环顾四周,我没有看到任何直接的zip文件来执行此操作。 最佳答案 DBD::SQLite包含在Strawberry(任何版本)和ActivePerl(AFAIK从5.8.8build820开始)。其他模块可以使用PAR::Pack

windows - 如何在 Windows 上的 Perl 中获取用户和组信息?

Perl有几个内置函数,用于访问Unix系统(以及支持的其他地方)上的/etc/passwd以获取用户和组信息。例如,my$name=getpwuid($uid);将返回给定用户ID的用户名,如果没有该用户则返回undef。如果Perl脚本需要可移植并在Unices和Windows上运行,应该如何访问用户和组信息?ActivePerl似乎支持User::grent和User::pwent模块,它们提供对/etc/passwd的按字段访问——即使在Windows中也是如此。奇怪的是,它们不支持内置函数getpw*和getgr*。还有哪些其他选择? 最佳答案

windows - Perl:在 Windows 上管理路径编码

我正在努力处理包含非英文字符的路径(ActivestatePerl、WindowsXP)。如何打开、写入、复制等位于带有希腊/俄语/法语重音字符的路径中的文件?假设我要将text.txt文件复制到的目录是:C:\DocumentsandSettings\στα\DesktopuseFile::Spec;my$save=File::Spec->canonpath($mw->chooseDirectory());my$file=catfile($save,"renamed_text.txt");my$input="üüü\text.txt";copy($input,$file)ordie"

具有可编辑默认值的 Windows Perl 行编辑器?

我在Windows上运行StrawberryPerl,我想在命令提示符中打印一个“默认值”,以便用户可以对其进行编辑,然后按Enter键,Perl会将其视为一个新的STDIN行。我被告知使用IO::Prompt,但已确定这在Windows中不起作用。缺少使用Tk制作GUI什么的,我该怎么做? 最佳答案 ExtUtils::MakeMaker有一个prompt功能,非常独立于平台。我不是建议在您的情况下使用它,而是建议IO::Prompt::Tiny的POD声明其prompt功能是基于ExtUtils::MakeMaker执行此操作的

windows - 如何在 Windows 上调试 Perl XS 代码

您能描述一下在Windows上调试PerlXSdll的步骤吗?首选像Windbg这样的UI调试器。我希望能够在dll中的例程上设置断点并检查堆栈等。我的盒子上有perl的调试版本。 最佳答案 你可以尝试做我在*NIX下做的一次。检查从您的.xs生成的.c,注意xsubpp为您的函数提供的函数名称。在调试器中打开Perl并在具有名称的函数处设置断点。调试器会提示该符号尚不可见,并且断点将在共享库加载期间解析。现在尝试使用您的脚本作为参数来运行Perl。如果一切正常,那么调试器将在Perl加载XS时正确解析符号名称。在某些调试器中,此类

windows - 为什么 Windows XCOPY 在通过 psexec 通过 Perl 系统调用调用时失败?

我正在使用psexec在远程Windows机器上启动Perl程序。该程序对xcopy进行系统调用。这在机器上直接(本地)运行时工作正常,但是当通过psexec远程运行时,xcopy失败并显示以下消息:Filecreationerror-Incorrectfunction.(根据用户的不同,消息可能改为“访问被拒绝。”)注意$!给出以下诊断:Badfiledescriptoratsyscall.pl.perlexitedonREMOTEwitherrorcode9.xcopy是通过system()还是反引号调用似乎没有区别。我应该指出,“from”文件夹是一个ClearCase动态Vie

windows - UTF-16 perl 输入输出

我正在编写一个脚本,它将一个UTF-16编码的文本文件作为输入并输出一个UTF-16编码的文本文件。useopen"encoding(UTF-16)";openINPUT,"input.txt:$!\n";open(OUTPUT,">output.txt");while(){printOUTPUT"$_\n"}假设我的程序将input.txt中的所有内容写入output.txt。这在我的cygwin环境中工作得很好,它使用“这是为cygwin-thread-multi-64int构建的perl5,版本14,颠覆2(v5.14.2)”但在我的Windows环境中,它使用“这是为MSWin

windows - 是否可以使用 perl 处理退出代码 > 255?

首先,找到一些关于退出代码的背景inperl(alsohere)和onWindows.现在-当我从perl脚本执行另一个进程时(我对方法持开放态度,qx/open/system/exec/IPC::Run等)在Windows上:是否可以捕获0-255范围之外的退出代码?在Windows上,一个进程可以返回一个完整的(带符号的)32位退出代码,返回0x8...0...的情况并不少见,也就是说,一些COM错误代码或类似的东西。 最佳答案 是的,Win32::Process可以返回完整签名的32位退出代码。使用GetExitCode方法。