小编mfo*_*ani的帖子

僵尸怎么伤害?

来自perlipc /信号:

eval {
  local $SIG{ALRM} = sub { die "alarm clock restart" };
  alarm 10;
  flock(FH, 2); # blocking write lock
  alarm 0;
};
if ($@ and $@ !~ /alarm clock restart/) { die }
Run Code Online (Sandbox Code Playgroud)

如果超时的操作是system()或qx(),则此技术可能会生成僵尸.如果这对你很重要,你需要自己做fork()和exec(),并杀死错误的子进程.

我有一个类似的代码,其中超时的操作是system()或qx().

关于僵尸他们消耗记忆的坏事还是僵尸可以伤害的方式更多?

perl fork zombie-process

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

在Perl的AnyEvent下使用哪个日志记录模块?

我正在使用精彩的AnyEvent来创建异步TCP服务器(特别是MUD服务器).

为了保持一切顺利运行并且尽可能少的阻塞/同步代码片段,我已经用异步对应物替换了一些我使用的模块,例如AnyEvent :: MemcachedAnyEvent :: Gearman.这允许主程序非常快速,这是期望的.我编写了一些这些调用需要同步的代码.

我目前遇到的一个问题是这个问题的重点是记录.

在转向此服务器程序的AnyEvent之前,我使用的是Log :: Log4perl,因为它允许我微调哪些模块或子程序应该被记录,在哪个级别以及哪个日志输出(屏幕,文件等).

这里的问题是Log4perl操作(警告,信息等)当前是同步执行的,但只要日志行最终在屏幕/文件上(并按正确的顺序),我就没有要求.

当使用异步事件处理程序(如AnyEvent)时,Log :: Log4perl仍然是正确的选择,还是应该查看其他模块?如果是这样,推荐哪个?

perl asynchronous

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

perl dancer:将数据库信息传递给模板

关注舞者教程:

http://search.cpan.org/dist/Dancer/lib/Dancer/Tutorial.pod

我正在使用我自己的sqlite3数据库与此架构

CREATE TABLE if not exists location (location_code TEXT PRIMARY KEY, name TEXT, stations INTEGER);
CREATE TABLE if not exists session (id INTEGER PRIMARY KEY, date TEXT, sessions INTEGER, location_code TEXT, FOREIGN KEY(location_code) REFERENCES location(location_code));
Run Code Online (Sandbox Code Playgroud)

我的舞者代码(helloWorld.pm)用于数据库:

package helloWorld;
use Dancer;
use DBI;
use File::Spec;
use File::Slurp;
use Template;

our $VERSION = '0.1';

set 'template' => 'template_toolkit';
set 'logger'   => 'console';

my $base_dir = qq(/home/automation/scripts/Area51/perl/dancer);

# database crap
sub connect_db {
 my $db = qw(/home/automation/scripts/Area51/perl/dancer/sessions.sqlite);
 my $dbh = DBI->connect("dbi:SQLite:dbname=$db", …
Run Code Online (Sandbox Code Playgroud)

perl templates dancer

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

标签 统计

perl ×3

asynchronous ×1

dancer ×1

fork ×1

templates ×1

zombie-process ×1