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; } }