我有一个程序需要来自标准输入的输入,或者来自 .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 中使用核心模块。