use strict; my @parsers; push @parsers, \&parser1; # Create a reference to parser 1 and push it onto the array push @parsers, \&parser2; # Ditto for parser 2 ... sub parser1 { parse..parse..parse }; sub parser2 { parse_somewhat_differently }; #### $parsers[$source_id]->( arguments ); # $source_id contains the source, e.g. 2