【发布时间】:2012-06-01 03:00:07
【问题描述】:
我正在一个 Perl 程序中生成一个 node.js 脚本,我想通过 node.js 作为一个 JavaScript 解释器来运行它。如何在$script 中运行节点而不将其写入磁盘然后调用节点,然后捕获输出。
我正在使用system 命令,我认为这很适合此目的。
【问题讨论】:
标签: perl
我正在一个 Perl 程序中生成一个 node.js 脚本,我想通过 node.js 作为一个 JavaScript 解释器来运行它。如何在$script 中运行节点而不将其写入磁盘然后调用节点,然后捕获输出。
我正在使用system 命令,我认为这很适合此目的。
【问题讨论】:
标签: perl
使用IPC::Run 或IPC::Open3。
use strictures;
use IPC::Run qw(run);
use autodie qw(:all run);
my $in = '… JavaScript goes here …';
my $out;
run ['node'], \$in, \$out;
【讨论】:
使用open 代替system
#!/usr/bin/perl
open(FOO, "|node");
print FOO "console.log('hello world');";
或者,如果您不需要从 perl 脚本中执行此操作,只需从您的 shell:
$ ./myscript.pl | node
打印javascript代码后myscript.pl退出的地方
【讨论】: