Beefy Boxes and Bandwidth Generously Provided by pair Networks
Come for the quick hacks, stay for the epiphanies.
 
PerlMonks  

Re: combine multiple files into one (line by line)

by danger (Priest)
on Apr 05, 2001 at 23:31 UTC ( [id://70241]=note: print w/replies, xml ) Need Help??


in reply to combine multiple files into one (line by line)

Here are two versions: the first one intermixes all the lines from the files, the second allows you to decide on a limit of how many lines to read from the files (as per your followup specifications):

#!/usr/bin/perl -w use strict; use IO::File; my @files = qw/file1 file2 file3/; my @fhs = map{IO::File->new($_)||die "$_: $!"} @files; print while $_ = join '', map{scalar <$_>||''} @fhs; __END__ #!/usr/bin/perl -w use strict; use IO::File; my $limit = 2000; my @files = qw/file1 file2 file3/; my @fhs = map{IO::File->new($_)||die "$_: $!"} @files; for(1 .. $limit) { $_ = join '', map{scalar <$_>||''} @fhs or last; print; } __END__

Both assume that you'll just redirect output to the new file, but you can open() an output filehandle and print to it if you wish.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://70241]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others learning in the Monastery: (2)
As of 2024-04-24 23:42 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found