小编Cha*_*hak的帖子

如何在Perl脚本中包含其他文件的函数?

这似乎是一个非常简单的问题,但不知怎的,我的Google-Fu让我失望了.

在Perl中包含其他文件的函数的语法是什么?我正在寻找类似C的东西#include "blah.h"

我看到了使用Perl模块的选项,但这似乎需要对我当前的代码进行无意义的重写.

perl include

66
推荐指数
5
解决办法
8万
查看次数

Perl内存使用情况分析和泄漏检测?

我在Perl上编写了一个在Linux上运行的持久网络服务.

不幸的是,随着它的运行,它的Resident Stack Size(RSS)只是在缓慢但肯定地增长,增长和增长.

尽管我努力消除所有不需要的哈希键并删除对象的所有引用,否则会导致引用计数保留在原位并阻碍垃圾收集.

是否有任何好的工具可以在Perl程序中分析与各种本机数据原语,祝福散列引用对象等相关的内存使用情况?你用什么来追踪内存泄漏?

我不习惯在Perl调试器或任何各种交互式分析器中花费时间,因此我们将感激温暖,温和,非深奥的反应.:-)

debugging perl profiler memory-leaks memory-management

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

使用双重否定(!!)

好的,所以我遇到了一个看起来像的代码

@documents_names = sort {
         !!$deleted_documents_names{$a} == !!$deleted_documents_names{$b}
          ? uc($a) cmp uc($b)
          : !!$deleted_documents_names{$a}
          cmp !!$deleted_documents_names{$b}
         } @documents_names;
Run Code Online (Sandbox Code Playgroud)

这是我第一次看到使用双重否定.有什么用?一个人什么时候使用它?

perl boolean operators

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

如何在Linux中编译c ++程序?

我创建了一个文件hi.cpp,我写了下面给出的命令:

#include <iostream>
using namespace std;
int main ()
{
  cout << "Hello World! ";
  cout << "I'm a C++ program";
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

然后我使用以下命令在我的RHEL 6机器上运行它

gcc hi.cpp
Run Code Online (Sandbox Code Playgroud)

我有一些错误如下:

[chankey@localhost ~]$ gcc hi.cpp
/tmp/cc32bnmR.o: In function `main':
hi.cpp:(.text+0xa): undefined reference to `std::cout'
hi.cpp:(.text+0xf): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, const char*)'
hi.cpp:(.text+0x19): undefined reference to `std::cout'
hi.cpp:(.text+0x1e): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, const char*)'
/tmp/cc32bnmR.o: In function `__static_initialization_and_destruction_0(int, int)': …
Run Code Online (Sandbox Code Playgroud)

c++

24
推荐指数
3
解决办法
10万
查看次数

什么是4/16的哈希?

if (%hash){
     print "That was a true value!\n";
}
Run Code Online (Sandbox Code Playgroud)

如果(并且仅当)散列具有至少一个键值对,那将是真实的.

实际结果是一个内部调试字符串,对维护Perl的人有用.它看起来像"4/16",但是当散列是非空时,该值保证为真,而当它为空时,该值保证为假. - 小马书

这4/16是什么?谁能告诉我一个小程序,我可以看到结果是4/16?

perl

16
推荐指数
3
解决办法
1820
查看次数

当我使用sleep时,为什么不在循环的每次迭代中打印输出?

今天在我的大学里,老师问我一个问题.他在论文中写了这段代码并说"这段代码的输出是什么?"

use warnings;

for (1 .. 20)
{
    print ".";
}
Run Code Online (Sandbox Code Playgroud)

我发现它很容易并且说它将循环20次并且在每次迭代时它将打印一个点(.)因此总共20个点将是输出.

他说你是对的,然后他对代码做了一些改动.代码是:

use warnings;

for (1 .. 20)
{
    print ".";
    sleep 1;
}
Run Code Online (Sandbox Code Playgroud)

他说现在的产量是多少?我不知道睡眠功能,我猜想在每次迭代时它会打印点(.)然后它会等待1秒(因为睡眠功能)然后它会再次迭代然后它会再次打印(.)然后它将等待1秒,依此类推......

老师叫我在家里检查一下.我在家尝试了,我发现第二个代码等了20秒,然后一次打印所有点(20个点).我想知道这是怎么发生的?为什么点(.)在每次迭代时都没有打印?

perl buffering

15
推荐指数
3
解决办法
3066
查看次数

"所有节目都被解释".怎么样?

计算机科学家将正确地解释所有程序都被解释,唯一的问题是在什么级别.- perlfaq

如何解释所有程序?

perl

14
推荐指数
3
解决办法
722
查看次数

为什么我们不能在列表上下文中初始化状态数组/哈希?

数组和散列有一个限制作为状态变量.从Perl 5.10开始,我们无法在列表上下文中初始化它们:

所以

state @array = qw(a b c); #Error!
Run Code Online (Sandbox Code Playgroud)

为什么会这样?为什么不允许这样做?

我们可以使用状态数组并通过这种方式初始化它们

state @numbers;
push @numbers, 5;
push @numbers, 6;
Run Code Online (Sandbox Code Playgroud)

但为什么不直接这样做呢 state @numbers = qw(5 6);

Perl为什么不允许它?

perl initialization

13
推荐指数
3
解决办法
2405
查看次数

字符常量中的多个字符

某些C编译器允许字符常量中的多个字符.这意味着写"是"而不是"是"可能不会被发现.资料来源:C陷阱和陷阱

任何人都可以给出一个例子,其中字符常量允许多个字符吗?

c

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

如何从DataTables中删除排序选项?

我正在使用DataTables插件.我不想使用排序选项(按ASC或DESC顺序对列进行排序),默认情况下每个选项都有<thead>.如何删除排序图标?

jquery-plugins datatables

11
推荐指数
6
解决办法
5万
查看次数