草庐IT

perl-critic

全部标签

windows - 在 Windows 上使用 Perl,如何确保在 chdir 之后获得正确大小写的路径?

考虑以下代码:printcwd."\n";$str="../source";#notethelowercase's'chdir($str);printcwd."\n";如果我的当前目录是c:\parentdir\Source(注意大写的“S”),则输出将是:c:/parentdir/Sourcec:/parentdir/source这会导致我的子程序出现问题,该子程序关心文件夹名称的正确大小写。$str被传递到我的子例程中,所以我无法提前知道它是否有正确的大小写。如何确定匹配$str的路径的大小写正确名称?更多细节在这里:我意识到../source是一个病态的例子,但它有助于说明问题。

windows - 为什么 Perl 提示 "Unsuccessful stat on filename containing newline"?

我收到一个我不明白的错误。我正在使用File:Find在Windows上使用ActivestatePerl5.8.8递归fylesystem并尝试统计$File::Find::name;所以我不是stat-ing从需要chomp-ing或换行删除的文本文件扫描中获取的文件名。我无法获取文件修改时间,mtimein:my($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,$blksize,$blocks)=stat($File::Find::name);所以尝试一个-s$File::Find::name给我

windows - 如何在 Windows 机器上的 perl 脚本中将 Unicode 文件转换为 ASCII 文件

我在Windows机器上有一个Unicode格式的文件。有什么方法可以使用perl脚本在Windows机器上将其转换为ASCII格式它是UTF-16BOM。 最佳答案 如果你想把unicode转换成ascii,你必须知道有些字符是不能转换的,因为它们根本不存在于ascii中。如果你能忍受,你可以试试这个:#!/usr/bin/envperlusestrict;usewarnings;useautodie;useopenIN=>':encoding(UTF-16)';useopenOUT=>':encoding(ascii)';my$

windows - 如何在 Windows 上的 Perl 中安装 ExtUtils::PkgConfig?

我已经尝试了cpan和cpanpshell,但我不断得到:ExtUtils::PkgConfigrequiresthepkg-configutility,butitdoesn'tseemtobeinyourPATH.Isitcorrectlyinstalled?什么是pkg-config实用程序以及如何安装它?更新:操作系统:Windows此模块是File::Extractor模块的先决条件 最佳答案 看这里:http://gtk2-perl.sourceforge.net/win32/howto_build_gtk2perl_wi

windows - 当我从 Perl 调用命令时,如何抑制 "notify Microsoft"崩溃对话框?

我正在从我的Perl脚本调用命令行程序。当这些程序崩溃时,我会收到一个消息框,询问我是否要通知Microsoft。由于这是一个自动化系统,如果我可以抑制该消息并继续我的脚本中的其他内容,那将是可取的。这可能吗? 最佳答案 您可能会使用WerAddExcludedApplicationfunction当程序崩溃时阻止WER启动。之后你应该再次使用WerRemoveExcludedApplication恢复帽子排除。. 关于windows-当我从Perl调用命令时,如何抑制"notifyMi

windows - 如何从 MinGW 安装管理器安装 perl 5.10?

当我尝试在Windows上使用msys.bat构建openssl时,./configuremingwshared报告错误。Perlv5.10.0required--thisisonlyv5.8.8,stoppedat./configureline12.MinGW安装管理器将5.8.8列为存储库版本。如何获得更新版本的perl?我已经安装了strawberryperl,但我不知道是否可以将它连接到msys。 最佳答案 您可以尝试以下几种方法:Perl-MinGW项目,似乎是PerlforMinGW的更新:https://sourcef

windows - 如何将我的 perl 脚本打包为 32 位可执行文件?

我在64位Windows7机器上,我一直在使用PAR:Packager将我的脚本打包为.exe的。但是,我现在需要在32位Windows7机器上运行这些.exe。有没有办法将它从64位机器打包为32位可执行文件?(是否可以使用PAR:Packager?) 最佳答案 您可以在64位机器上安装32位perl,但大多数人会建议您只保留32位VM,以便在需要为遗留机器发布软件时使用。 关于windows-如何将我的perl脚本打包为32位可执行文件?,我们在StackOverflow上找到一个类

windows - 在名称长度超过 220 个字符的目录中使用 Windows 上的 Perl 创建文件

我遇到了无法在名称长度超过220个字符的目录下创建文件的问题。以下是重现观察到的行为的测试脚本,至少在我的机器上是这样:usewarnings;usestrict;useWin32::LongPath;printsystem('rmdir/s/qtest');mkdirL('test');formy$i(200..255){my$dir_name='test/'.sprintf("%04d",$i).('a'x($i-4));mkdirL($dir_name);openL(\my$fh,'>',"$dir_name/".('_'x200).'.txt')ordie"$^E";print

windows - 如何让分支管道在 Windows 上的 Perl 中工作?

我正在尝试将Perl脚本从Unix移植到Windows,但由于open函数中的分支管道不受支持,我几乎不可能让它工作。这是代码:subp4_get_file_content{my$filespec=shift;return'Contentplaceholder!'if($options{'dry-run'});debug("p4_get_file_content:$filespec\n");local*P4_OUTPUT;local$/=undef;my$pid=open(P4_OUTPUT,"-|");die"Forkfailed:$!"unlessdefined$pid;if($p

windows - 如何从 perl 启动程序?

如何从perl启动firefox?我只需要启动浏览器,以便WWW::Mechanize::Firefox可以操作它。在stackoverflow周围搜索我看到了一些解决方案,例如system('startcmd.exe/k$cmd)其中$cmd是启动cmd后作为输入抛出的参数。然而,这些都没有帮助我解决我的问题。我尝试过的解决方案system("startcmd.exe/kstartfirefox");system("firefox");system("cmd","start","firefox");system("cmdstartfirefox");基本上我找到了很多替代品,但我根本