my @configurations; load_configurations("config_file"); open my $FH, '<', $input_fname or die "Can't open $input_fname: $!"; while (<$FH>) { my @config_vars; ... parse out an input entry ... @config_vars = @$configurations[$configuration_ID]; ... code to process input using configuration variables... } sub load_configurations { my $fname = shift; open my $FH, '<', $fname or die "Can't open $fname: $!"; while (<$FH>) { my @config_vars; ... parse out a configuration... $configurations[$configuration_ID] = [ @config_vars ]; } }