Linux 从命令行将数据传递到perl脚本
我有一个perl脚本,用于根据xml定义创建报告。目前,这些定义都以.xml文件的形式存在 因此,我有脚本Linux 从命令行将数据传递到perl脚本,linux,perl,Linux,Perl,我有一个perl脚本,用于根据xml定义创建报告。目前,这些定义都以.xml文件的形式存在 因此,我有脚本run report.pl,它可以获取定义文件的路径并创建报告 现在我想从db.pl创建运行报告,它将基于相同的数据库条目生成报告定义。我不想创建要传递到run-report.pl的临时文件,我只想以某种方式传递定义 因此,与其说: run-report.pl -def=./path/to/def.xml 我想说: run-report.pl --stream 并在 我相信有非常简单的方
run report.pl
,它可以获取定义文件的路径并创建报告
现在我想从db.pl创建运行报告,它将基于相同的数据库条目生成报告定义。我不想创建要传递到run-report.pl的临时文件,我只想以某种方式传递定义
因此,与其说:
run-report.pl -def=./path/to/def.xml
我想说:
run-report.pl --stream
并在
我相信有非常简单的方法可以做到这一点???如果我正确理解了你的问题,你只需要一个
(管道)
/generate-xml-from-db.pl |/run-report.pl——流
管道中第一个进程打印到stdout
的任何内容都将出现在第二个进程的stdin
中,只要您从stdin读取,它就可用。请注意下面的代码将其命名为echo.pl
在命令行中运行它并粘贴大量文本
#!/usr/bin/perl -w
use 5.010;
use strict;
use warnings;
while ( <> ) {
say;
}
#/usr/bin/perl-w
使用5.010;
严格使用;
使用警告;
而{
说,;
}
是“从STDIN读取”的Perl缩写
只要您用于启动流程的方法能够获得标准输入和输出,您就可以将其写入该句柄。你必须使用你可用的方法。例如,在Java中,您必须获取流程的输入流,在批处理命令中,您必须对其进行管道处理。在GUI终端上,您可以剪切和粘贴 或者更准确地说:简写为“从STDIN或ARGV读取,以我目前使用的为准”。