小编use*_*033的帖子

Perl glob和文件句柄问题

好的,我在这里有点问题.我意识到我不需要为*:: HTML设置一个$ handle来使这个代码片段起作用,但是这个代码从它的使用中脱离了上下文,我确实需要这个来处理$ handle.我收到的输出在片段下面,但我想要的输出是file.html包含"what \nsometext1 \nsometext2 \n".

open(HTML, ">file.html");
$handle = \*::HTML;
print $handle "what\n";

open(READ, "< somefile.txt"); #somefile.txt contains sometext1\nsometext2\n
while(<READ>)
{
    print $handle;
}
close READ;
close HTML;
Run Code Online (Sandbox Code Playgroud)

file.html保留输出"what",GLOB(0x6278b0)GLOB(0x6278b0)打印到终端窗口.

perl glob filehandle

2
推荐指数
2
解决办法
9201
查看次数

和全位?

我最近一直在阅读一些代码,并遇到了一些问题:

somevar &= 0xFFFFFFFF;
Run Code Online (Sandbox Code Playgroud)

所有位都打开的东西有什么意义; 它到底是不是只等于somevar?

c c++ bit-manipulation

2
推荐指数
2
解决办法
355
查看次数

如何将函数传递给Perl子?

我怎么写一个接受像map函数那样的函数呢?

例:

$func = sub { print $_[0], "hi\n" };
&something($f);
sub something
{
    my $func = shift;
    for ($i = 0; $i < 5; $i++)
    {    $func->($i);    }
}
Run Code Online (Sandbox Code Playgroud)

工作良好.

但是如果我这样做的话

&something( { print $_[0], "hi\n" } );
Run Code Online (Sandbox Code Playgroud)

它不会工作,并说func是一个未定义的引用.

所以我的问题是如何编写一个接受perls map函数等参数的函数?

map { s/a/b/g } @somelist;
Run Code Online (Sandbox Code Playgroud)

perl function

2
推荐指数
2
解决办法
346
查看次数

在c中检查字符串是否有正确的字符

有没有更简单的方法在c中执行以下操作?

unsigned short check_str(char *str)
{
    while (*str)
    {
        if (!(*str == ' ' || *str == '(' || *str == ')' ||
              *str == '1' || *str == '2' || *str == 'a' ||
              *str == 'x' || *str == 'b'))
              return 0;
        str++;
     }
     return 1;
 }
Run Code Online (Sandbox Code Playgroud)

基本上它会检查字符串中除列出的字符之外的任何字符,如果找到,则返回false.有更简单的功能吗?

c string

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

C在32位上定义64位

如果我做:

#define TIMEFIXCONST 11644473600
Run Code Online (Sandbox Code Playgroud)

在32位机器上,它会溢出还是存储很长时间仍然可以正常工作?我应该只定义一个全局无符号长long并使用它吗?

c c-preprocessor

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

给Perl的打印列表或串联字符串更快吗?

选项A:

print $fh $hr->{'something'}, "|", $hr->{'somethingelse'}, "\n";
Run Code Online (Sandbox Code Playgroud)

选项B:

print $fh $hr->{'something'} . "|" . $hr->{'somethingelse'} . "\n";
Run Code Online (Sandbox Code Playgroud)

printing perl performance

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

c从文件读取输入时修剪换行符

从文件中读取换行符后,这是一种安全的方法来修剪换行符吗?

while ( fgets(buffer, 1024, fp) != NULL )
{
    buffer[strlen(buffer)-1] = '\0';
    fprintf (stderr, "%s\n", buffer);
}
Run Code Online (Sandbox Code Playgroud)

它没有给我任何seg故障,但它可能会导致问题吗?我应该这样做吗?

while ( fgets(buffer, 1024, fp) != NULL )
{
    tmp = (char *) malloc(strlen(buffer));
    strncpy(tmp, buffer, strlen(buffer) - 1);
    tmp[strlen(buffer)-1] = '\0';
    fprintf (stderr, "%s\n", tmp);
}
Run Code Online (Sandbox Code Playgroud)

c file-io

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

c字符串标记化问题

char *str = malloc (14);
sprintf(str, "%s", "one|two|three");

char *token1, *token2, *token3;
char *start = str;

token1 = str;
char *end = strchr (str, '|');
str = end + 1;
end = '\0';

token2 = str;
end = strchr (str, '|');
str = end + 1;
end = '\0';

...

free(start);
Run Code Online (Sandbox Code Playgroud)

这是免费工作,因为我已经将str中的字节设置为null以便对它进行标记化吗?

c string

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

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

xerces-c ++编译/链接问题

安装Xerces-C ++(XML库)后:

./configure --disable-shared
./make
./make-install
ldconfig
Run Code Online (Sandbox Code Playgroud)

并编写简单程序(xmlval.cpp):

#include <stdio>
#include <xercesc/dom/DOM.hpp>

int main()
{
    std::cout << "HI" << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

并编译:

/usr/bin/g++ -L/usr/local/lib -I/usr/local/include -o xmlval xmlval.cpp /usr/local/lib/libxerces-c.a
Run Code Online (Sandbox Code Playgroud)

编译结果是一串这样的代码:

/usr/local/lib/libxerces-c.a(CurlNetAccessor.o): In function `xercesc_3_0::CurlNetAccessor::cleanupCurl()':
/home/stullbd/xerces-c-3.0.1/src/xercesc/util/NetAccessors/Curl/CurlNetAccessor.cpp:78: undefined reference to `curl_global_cleanup'
/usr/local/lib/libxerces-c.a(CurlNetAccessor.o): In function `xercesc_3_0::CurlNetAccessor::initCurl()':
/home/stullbd/xerces-c-3.0.1/src/xercesc/util/NetAccessors/Curl/CurlNetAccessor.cpp:70: undefined reference to `curl_global_init'
/usr/local/lib/libxerces-c.a(CurlURLInputStream.o): In function `~CurlURLInputStream':
/home/stullbd/xerces-c-3.0.1/src/xercesc/util/NetAccessors/Curl/CurlURLInputStream.cpp:168: undefined reference to `curl_multi_remove_handle'
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?

c++ compiler-errors linker-errors static-libraries

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