#!/usr/bin/env perl use warnings; use strict; package FW; sub extract { return "It's a FW"; } package VRF; sub extract { return "It's a VRF"; } package main; my @fw = collect('fw'); my @vrf = collect('vrf'); print "$_\n" for @fw, @vrf; sub collect { my ($type) = @_; my $module = uc $type; return $module->extract(); } #### It's a FW It's a VRF