my %add = ( daily => \&addDaily, test => \&addTest, ); $add{$daily_or_test} or return; # should die instead? my @List; for ( split /\n/, $res->as_string ) { if ( my( $extracted ) = /href="([a-z][^\/]*)/i ) { $extracted =~ /win/i and $add{$daily_or_test}->( $extracted ) == 1 and push @List, $extracted; } } #### ref($daily_or_test) eq 'CODE' or die; . . . $daily_or_test->( $extracted ) . . .