小编jro*_*way的帖子

如何使用Expect.pm将箭头键按下发送到进程

看起来这应该是显而易见的,但如何使用Expect.pm将箭头按键发送到进程?它取决于我使用的终端类型(vt100)还是我发送键盘扫描码?

TIA.

perl expect

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

为什么我从Perl的system()开始是一个子进程?

Perl的system()启动一个进程,但打破了父/子关系?

test.pl:

use POSIX;

system("./test.sh &");

my $pid = `ps -C test.sh -o pid=`;

print "pid: -$pid-\n";

waitpid($pid, 0);
Run Code Online (Sandbox Code Playgroud)

test.sh:

while true
do
    sleep 1
done
Run Code Online (Sandbox Code Playgroud)

当我运行test.pl时,它会找到并打印一个正确的test.sh. 但是waitpid()返回-1并且test.pl退出.test.pl存在后,test.sh仍在运行.

看起来test.sh不是test.pl的子代,它会破坏waitpid().为什么会发生这种情况以及如何使system()表现出来?这是因为Perl会自动清除孩子吗?如果是,我该如何解决明确等待儿童的一般任务?

更新:

下面的答案建议使用fork/exec.最初的问题是:

  1. 从Perl脚本,运行启动服务的命令行实用程序.该实用程序退出但服务仍然存在.

  2. 过了一段时间,找到服务的pid并等待它.

虽然它解决了这个问题,但fork/exec并没有解决这个问题.

unix perl system process waitpid

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

HXT - 什么是"深层"?

我花了很多时间试图弄清楚如何使用HXT.我一直反对使用的例子deep.怎么deep办?

例如,此代码具有以下内容:

atTag tag = deep (isElem >>> hasName tag)
Run Code Online (Sandbox Code Playgroud)

另一个例子:

-- case-insensitive tag matching
atTagCase tag = deep (isElem >>> hasNameWith ((== tag') . upper . localPart))
  where tag' = upper tag
        upper = map toUpper
Run Code Online (Sandbox Code Playgroud)

xml haskell hxt

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

使用editgridrow添加POST数据

如果之前已经回答过这个问题,请道歉.

虽然我看到的答案根据jqGrid文档看起来是正确的,但我完全无法使"editGridRow"的"editData"参数起作用.

我尝试通过"navGrid"编辑选项设置editData:

$("#myGrid").jqGrid(
  "navGrid",
  "#pager",
  {edit:false,add:false,del:false}, //options
  {editData:{myparam:function(){return "myval"}}}, // edit options
  {}, // add options
  {}, // del options
  {} // search options
  );
Run Code Online (Sandbox Code Playgroud)

并通过"editGridRow":

$("#myGrid").jqGrid('editGridRow',rowid, {
   editData:{myparam:function(){return "myval"}},
   height:240,
   reloadAfterSubmit: true,
   editCaption:'Edit Record',
   bSubmit:'Save',
   url:'someurl.php',
   closeAfterEdit:true,
   viewPagerButtons:false
});
Run Code Online (Sandbox Code Playgroud)

我的其他POST数据只是没有出现在POST上.

知道我可能做错了吗?

谢谢!

javascript jqgrid

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

我可以将一个Perl模块作为多种mod_perl处理程序吗?

我正在为Apache中的各种与登录相关的函数编写一系列相关的mod_perl处理程序,所以我的Apache配置文件看起来像这样(例如)

PerlAccessHandler MyApache::MyAccess    
PerlAuthenHandler MyApache::MyAuthen
PerlAuthzHandler MyApache::MyAuthz
Run Code Online (Sandbox Code Playgroud)

每个模块(的MyAccess,MyAuthen,MyAuthz)限定

sub handler() {}
Run Code Online (Sandbox Code Playgroud)

mod_perl在处理请求的相关点处调用哪个.

我想知道的是,是否有一种方法可以使用一个Perl模块而不是三个(这对于用户来说安装一个模块而不是3个更简单,更少工作)?

有没有办法定义处理程序方法的名称.或者有没有办法从handler()代码中检测出我应该做的那种处理?

apache perl mod-perl

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

标签 统计

perl ×3

apache ×1

expect ×1

haskell ×1

hxt ×1

javascript ×1

jqgrid ×1

mod-perl ×1

process ×1

system ×1

unix ×1

waitpid ×1

xml ×1