my %data = (); # define all field names my @line1_fields = qw/ batch_suffix_id associated_operations /; my @lines2_fields = qw/ record_created record_created_date ... /; @data{ @line_1_fileds } = split /\s+/, $lines[0]; @data{ @line_2_fields } = split /\s+/, $lines[1];