use strict; sub split_file_line { my $file = shift; open(IN, "<".$file) || die "cannot open $file: $!"; my @items = split /,/,chomp($_ = ); close IN; return \@items; } my @data = (); my @files = qw(header_data.dat); my $nfiles = 3; for (my $i = 1; $i <= $nfiles; $i++) { push @files,"daily_data${i}.dat"; } foreach my $file (@files) { push @data, split_file_line($file); }