virtual file concatenation



When refactoring code to read from more than one file in sequence, I will
occasionally use somthing like this, which works but makes me
feel dirty:

open my $fh, "cat file1 file2 file3 |" or die $!;
while(<$fh>) {

I'd rather virtually concatenate file handles, like this:

## $fh1 $fh2 $fh3 are already open read handles
my $fh= IO::Something->new($fh1,$fh2,$fh3);
while (<$fh>) {

where $fh is an object of a class inheriting from IO::Handle (but probably
not from IO::Seekable, although that would be nice) which will read from
$fh1 until the end, then from $fh2, then from $fh3.

I've looked in CPAN but haven't seen anything, which kind of surprised me.
Is there something I've overlooked? If not, would this be a worthwhile
module?

Xho

--
-------------------- http://NewsReader.Com/ --------------------
Usenet Newsgroup Service $9.95/Month 30GB
.