我有一个程序,希望从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;只是让调用者处理解压缩更简单。 –
不喜欢这个要求,抱怨,但现在我无法控制它。所有的希望都不会丢失,但这是另一个话题! –