簡體   English   中英

從命令行將數據傳遞到perl腳本中

[英]Passing data into perl script from command line

我有一個Perl腳本,可以基於xml定義創建報告。 當前,這些定義都以.xml文件形式存在。

因此,我具有腳本run-report.pl ,該腳本可以采用定義文件的路徑並創建報告。

現在,我想創建run-reports-from-db.pl ,它將基於相同的數據庫條目生成報告定義。 我不想創建臨時文件傳遞給run-report.pl,我只是想以某種方式傳遞定義。

因此,與其說:

run-report.pl -def=./path/to/def.xml

我想能夠說:

run-report.pl --stream

並在<STDIN>提供報告定義

我敢肯定有很簡單的方法做到這一點???

如果我正確理解了您的問題,那么您只需要一個| (管)。

./generate-xml-from-db.pl | ./run-report.pl --stream

流水線打印到stdout的第一個進程中的所有內容都將出現在第二個進程的stdin

只要您從STDIN中閱讀 ,就可以使用它。 請注意,使用下面的代碼將其命名為echo.pl ,然后在命令行中運行並粘貼大量文本,這會發生什么。

#!/usr/bin/perl -w
use 5.010;
use strict;
use warnings;

while ( <> ) { 
    say;
}

<>是“從STDIN讀取”的Perl速記。

只要您用來啟動該過程的方法能夠掌握標准輸入和輸出,就可以將其寫入該句柄。 您必須使用可用的方式。 例如,在Java中,您必須獲取流程的輸入流,而在批處理命令中則必須通過管道進行處理。 在GUI終端,您可以剪切和粘貼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM