小编piC*_*kie的帖子

如何在不丢失模块的情况下在Windows上更新Perl?

在工作中我在Windows上使用Perl 5.8.0.

当我第一次打开Perl时,我去了CPAN,下载了所有的源代码,做了一些更改(在.MAK文件中?支持线程,或类似的东西),并做了nmake/nmake test/nmake install.然后,我一点一点地从CPAN下载了各个模块并完成了nmake舞蹈.

所以,我想升级到更新版本,但新版本不能破坏任何现有脚本.值得注意的是,我安装的一堆"使用"模块必须安装在新版本中.

什么是最可靠(最简单)的方式来更新我当前的版本,确保我所做的与nmake共舞的所有内容在更新后仍然存在?

windows perl upgrade perl-module

10
推荐指数
2
解决办法
1万
查看次数

为什么我不能在Windows 7中测试返回码?

我有一个非常复杂的程序失败了,我已经将它简化为带有批处理文件和C程序的测试集.

我的C程序使用ExitProcess将errorlevel传递回批处理文件.有时在Windows 7(Microsoft Windows [Version 6.1.7600])上,错误级别未正确解释.

我认为这应该永远运行.在Windows XP上,它似乎永远运行.在两台不同的双核Windows 7机器(一台64位,一台32位)上,它会在几分钟内失败.

我无法想象我做错了什么,但是如果在Windows 7上有一些关于ExitProcess的搞笑,我想我会问.这里有什么我非法做过的吗?

cmd.exe的批处理文件test.bat:

@ECHO OFF
SET I=0
:pass
SET /A I=I+1
Title %I%
start/wait level250
if errorlevel 251 goto fail
if errorlevel 250 goto pass
:fail
Run Code Online (Sandbox Code Playgroud)

程序级别250.c:

#include "windows.h"

static volatile int Terminate = 0;

static unsigned __stdcall TestThread(void * unused)
    {
    Terminate = 1;
    return 0;
    }

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow)
    {
    CreateThread(NULL, 0, TestThread, NULL, 0, NULL);

    while (Terminate == 0) Sleep(1);
    ExitProcess(250); …
Run Code Online (Sandbox Code Playgroud)

c batch-file windows-7

5
推荐指数
1
解决办法
1105
查看次数

perldoc perlxxx选项有哪些?

似乎使用perldoc perl给出了例如perlre,perlvar等的列表.

这是查找概述或教程或参考手册部分可用列表的最佳位置吗?还有另一个更好的清单吗?

perl perldoc

4
推荐指数
1
解决办法
205
查看次数

如何使用perldoc查找%ENV变量?

我从阅读perldoc perlvar中发现,大约有一千行是对%ENV的帮助.有没有办法从命令行直接找到它?

在我的Windows机器上,我尝试了以下内容

perldoc ENV
perldoc %ENV
perldoc %%ENV
perldoc -r ENV (returns info about Use Env)
perldoc -r %ENV
perldoc -r %%%ENV
perldoc -r %%%%ENV (says No documentation found for "%ENV")
Run Code Online (Sandbox Code Playgroud)

实际上没有返回有关%ENV变量的信息.

我如何使用perldoc来了解%ENV,如果我不想通过成千上万的线进行眼睛grep?

我尝试了建议的"perldoc perlvar",然后键入/%ENV,但没有任何反应.

perl -v: This is perl, v5.8.0 built for MSWin32-x86-multi-thread
Run Code Online (Sandbox Code Playgroud)

虽然我已经询问了%ENV,但这也适用于任何一般术语,因此在下一次我不知道哪个部分时,知道%ENV在perlvar中这个例子将无法帮助我.

有没有办法让perldoc转储所有东西(呃)我可以grep输出?

perl perldoc

4
推荐指数
1
解决办法
1110
查看次数

如何在Microsoft C编译器中禁止"注释C6311"?

在这个最大限幅剪辑的源示例中,正在重新定义清单常量FOOBAR.这是故意的,并且在实时案例中有额外的代码来使用每个定义.

添加了pragma以消除警告消息,但随后出现了一个注释,我似乎没有找到摆脱注释的方法.

我已经能够将这个特定的源修改为#undef之间#define,但是我想知道是否有一种方法可以在不需要的情况下禁止注释#undef,因为有多个常量以相同的方式处理.

#pragma warning( disable : 4005 ) // 'identifier' : macro redefinition
#define FOOBAR FOO
#define FOOBAR BAR
Run Code Online (Sandbox Code Playgroud)

编译器横幅和输出如下

Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8804 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.

message.c
message.c(3) : note C6311: message.c(2) : see previous definition of 'FOOBAR'
Run Code Online (Sandbox Code Playgroud)

visual-c++ c-preprocessor

1
推荐指数
1
解决办法
654
查看次数