my @array = ( [ 'somefilename', @data1 ], [ 'otherfilename', @data2 ], ); foreach @array { my $filename = shift(@{$_}); open(F, ">$filename") or die "Couldn't open $filename: $!"; print F join("\n", @{$_}), "\n"; }