小编rar*_*box的帖子

在退出之前,在perl中杀死子进程的正确方法是什么?

我正在运行一个IRC Bot(Bot :: BasicBot),它有两个运行File :: Tail的子进程但是在退出时它们不会终止.所以我在退出前使用这样的Proc :: ProcessTable来杀死它们:

my $parent=$$;
my $proc_table=Proc::ProcessTable->new();
for my $proc (@{$proc_table->table()}) {
  kill(15, $proc->pid) if ($proc->ppid == $parent);
}
Run Code Online (Sandbox Code Playgroud)

它有效但我得到这个警告:

14045: !!! Child process PID:14047 reaped:
14045: !!! Child process PID:14048 reaped:
14045: !!! Your program may not be using sig_child() to reap processes.
14045: !!! In extreme cases, your program can force a system reboot
14045: !!! if this resource leakage is not corrected.

我还能做些什么来杀死子进程?分叉进程是使用Bot :: BasicBot中 …

irc perl fork poe

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

如何对数组进行排序,以便某些文件扩展名排在最前面?

我有一个包含文件列表的数组.我想以一种方式对它进行排序,它会让我在数组的开头和之后的其余文件中包含.txt文件.

这就是我现在正在做的,这很好.

@files = (grep(/\.txt$/,@files),grep(!/\.txt$/,@files));
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法呢?

arrays perl

4
推荐指数
3
解决办法
1029
查看次数

如何使用Boost.Regex获取正则表达式匹配值?

我正在尝试从URL中提取域名.以下是一个示例脚本.

#include <iostream>
#include <string>
#include <boost/regex.hpp>

int main () {

  std::string url = "http://mydomain.com/randompage.php";
  boost::regex exp("^https?://([^/]*?)/");
  std::cout << regex_search(url,exp);

}
Run Code Online (Sandbox Code Playgroud)

如何打印匹配值?

c++ regex boost-regex

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

是否可以在Perl中使用单个文件句柄读取多个文件?

我有几个这样的日志文件:

  • /var/log/pureftpd.log
  • /var/log/pureftpd.log-20100328
  • /var/log/pureftpd.log-20100322

是否可以将它们全部加载到一个文件句柄中,还是需要分别加载它们?

perl filehandle

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

标签 统计

perl ×3

arrays ×1

boost-regex ×1

c++ ×1

filehandle ×1

fork ×1

irc ×1

poe ×1

regex ×1