#!/usr/bin/perl use strict; use warnings; chomp(my $line=<>); my @line=split /\t/, $line; { my @fh=map { my $fname=sprintf 'output%02d.txt', $_; open my $fh, '>', $fname or die "Can't open `$fname': $!\n"; $fh } 1..$#line; sub doline { my $one=shift; print { $fh[$_] } "$one\t$_[$_]\n" for 0..$#_; } } doline @line; chomp, doline split /\t/ while <>; __END__