#!/usr/bin/perl -w use strict; use IO::File; my $verbose = 1; my @fh; while (my $name = shift @ARGV) { my $file = new IO::File; print "Opening $name\n" if $verbose; open ($file,$name); push @fh, $file; } my $n = 0; READ: while (++$n) { my @filelines; for my $file (@fh) { my $line = <$file> || last READ; push @filelines, $line; } # Now @filelines contains the nth line from each file # so do whatever printing you want with it. I'm going # to print out the first word on each line: print "$n = " if $verbose; print +(join " : ", map {chomp;(split /\s+/, $_, 2)[0]} @filelines),"\n"; }