草庐IT

perl-critic

全部标签

windows - 如何在 perl 中为反引号加载 STDIN(不写入临时文件)

我正在执行系统命令,并希望(1)为系统命令预加载STDIN和(2)从命令中捕获STDOUT。根据here我知道我可以做到这一点:open(SPLAT,"stuff")||die"can'topenstuff:$!";open(STDIN,"这使用当前定义的STDIN作为排序的STDIN。如果我将数据放在一个文件中,那很好,但我将它放在一个变量中。有没有办法在执行系统命令之前将变量的内容加载到STDIN中?像这样的东西:open(STDIN,"这可以不使用临时文件来完成吗?另外,我使用的是Windows,因此我听说不推荐使用Open2。谢谢。 最佳答案

windows - Perl 控制台窗口 - 如何使其不可关闭?

我想知道在控制台中使用Perl时是否有任何方法可以隐藏关闭按钮或至少使其不可点击。我知道在使用GUI时这是可能的,但我需要制作一个基于控制台的应用程序并且不希望用户故意关闭它。 最佳答案 usestrict;useWin32::Console::ANSIqw/SetCloseButton/;$SIG{INT}='IGNORE';#noCtrl-CinterruptSetCloseButton(0);#noclosebutton 关于windows-Perl控制台窗口-如何使其不可关闭?,

windows - 为什么 Win32::ODBC 在 Perl 5.10 和 Cygwin 下找不到 ODBC.dll?

我正在尝试使用PerlODBC连接到MicrosoftSQL服务器。我的问题是Perl5.10.0在使用Win32ODBC驱动程序时遇到问题。如果我运行Perlshell并执行这一行,我会收到错误。useWin32::ODBC;Can'tload'/usr/lib/perl5/vendor_perl/5.10/i686-cygwin/auto/Win32/ODBC/ODBC.dll'formoduleWin32::ODBC:Nosuchfileordirectoryat/usr/lib/perl5/5.10/i686-cygwin/DynaLoader.pmline201.我已验证dl

windows - 如何使用 Perl 在 Windows 中获取没有文件名的路径?

我想通过perl在windows中获取没有文件名的路径我有这样的完整路径:c:\My_Designs\ipcore_script\test\src\IP_CORE\mux\sus.do我只需要路径并想去掉文件名,例如:c:\My_Designs\ipcore_script\test\src\IP_CORE\mux 最佳答案 使用File::Basename>perl-MFile::Basename-wE"saydirname(qq(c:/perl/bin/perl.exe));"c:/perl/bin

windows - 视频卡在 Perl 脚本中的 system(1, @commands) 上

我正在尝试编写一个Perl脚本,在WindowsMediaPlayer上一个接一个地运行目录中的视频n次。由于某种原因,在第64个视频播放时,它卡在system(1,@commands)上。现在,命令是system(1,"C:\\ProgramFiles(x86)\\WindowsMediaPlayer\\wmplayer",$path);在下面的for循环中.for(my$i=0;$i我想知道为什么它一直停在第64个视频(我已经运行了多次,它总是第64个。)也许有人可以更好地解释system(1,@commands)我?我所知道的是,它只是不等待@commands在继续程序之前完成.

c++ - CRITICAL_SECTION 用于设置和获取单个 bool 值

现在写复杂的class,感觉用了很多CRITICAL_SECTION。据我所知,某些类型有原子操作,它们总是在没有任何硬件或软件中断的情况下执行。我想检查一下我是否理解正确。要设置或获取原子值,我们不需要CRITICAL_SECTION,因为那样做不会有中断。bool是原子的。所以有我的陈述,想问一下,如果它们是正确的,如果它们是正确的,没有CRITICAL_SECTION也可以设置或获取什么类型的变量?P.S.我说的是获取或设置每个方法一个值,不是两个,不是五个,而是一个。 最佳答案 您不需要为原子数据加锁,但在内部它们可能会加锁

windows - 为什么这个 Perl 单行代码不能在 Windows 上运行?

尝试在命令窗口中运行一个简单的Perl脚本时出现错误:stringterminator"'"anywherebeforeEOFat-eline1代码perl-e'print"HelloWorld";'我做错了什么? 最佳答案 哪个平台?如果是Windows和CMD.EXE,那么各种事情都可能出错。在类Unix平台上,这应该可以正常工作。末尾没有换行符,因此您的提示可能会以“HelloWorld”开头,但仅此而已。注释说是Windows,那么麻烦的是WindowsCMD.EXE不像Unix那样解析命令行,不能简单地在参数周围使用单引号

windows - 在没有安装 ActivePerl 的情况下在 Windows 上使用 perl 脚本?

我在Windows下使用Perl作为我选择的脚本语言,通常我只安装ActivePerl(由于个人遗留原因,主要是5.8)并完成它。我现在面临的问题是我想在我没有任何管理员权限的机器上使用一些小脚本,因此无法使用其安装程序安装ActiveState发行版。要在Windows上以xcopy方式安装Perl,需要从已安装的ActiveStatePerl中压缩什么?(然后必须在命令shell中设置哪些环境变量才能使其工作?) 最佳答案 StrawberryPerl有便携版。我会优先使用它,而不是尝试在没有正确安装的情况下破解ActivePe

windows - 我是否需要 PATH 中的 Perl bin 目录来运行 perl 程序(在 Windows 上)?

传统上,我只会在我的PATH变量中包含C:\perl\bin,但由于版本冲突,我想在C:\Perl-位置保留不同的perl版本versionXY\bin并通过直接调用C:\Perl-...\bin\perl.exetheScript.pl来执行我的Perl脚本。这实际上是在自动化系统下运行,我们已经直接调用C:\perl\bin\perl.exe用于所有perl脚本。(但是C:\perl\bin也在PATH中。)为了并排处理不同的Perl版本,我想从PATH中删除C-perl-bin以确保我们不会看到任何Perl相关的副作用路径设置。这应该有效吗?那些需要额外DLL文件的模块呢(比如L

windows - Perl Unicode 故障

在这个输出中,为什么我在打印非ASCIIUnicode字符后得到额外的换行符?平台是WindowsVista,问题出现在chcp65001之后,但不是chcp850C:\>chcp850Activecodepage:850C:\>perlunicode_bug_1.plBudweiserBudweiserBudweiserBud─øjovick├¢BudvarBud─øjovick├¢BudvarBud─øjovick├¢BudvarC:\>chcp65001Activecodepage:65001C:\>perlunicode_bug_1.plBudweiserBudweiserBu