我有一個程序,希望從stdin輸入,或者從.log和.log.gz文件混合輸入。下面是三種類型的呼叫我想要的程序來處理:如何統一處理輸入文件
cat input.log | prog
prog < input.log
prog input.log input.log.gz
該方案認爲所有的輸入文件爲一體。我希望能利用ARGV均勻處理所有輸入:
while (<>) {
# process input
}
我的目標是在處理同一迴路GZ文件。如何才能做到這一點?我想知道它有多混亂。如果太糟糕,我會分開處理gz。
我只能在Perl 5.8.8中使用核心模塊。
可憐呀..這些限制削弱的Perl嚴重。 'IO :: Compress :: Gzip'和'IO :: Uncompress :: Gunzip'是5.9.4以來的核心。如果沒有任何CPAN模塊的話,會有什麼原因可以讓你找到一個古老的Perl解釋器? –
我不會考慮嘗試處理沒有模塊支持的gzip文件。你會被迫'運行'gzip -cd'並閱讀它的輸出'shenanigans;只是讓調用者處理解壓縮更簡單。 –
不喜歡這個要求,抱怨,但現在我無法控制它。所有的希望都不會丟失,但這是另一個話題! –