# there must be a better way for this. sub board0_Click {set_clip(1);1;} sub board1_Click {set_clip(2);1;} sub board2_Click {set_clip(3);1;} sub board3_Click {set_clip(4);1;} sub board4_Click {set_clip(5);1;} #### use vars '$AUTOLOAD'; sub AUTOLOAD { my ($numb) = $AUTOLOAD =~ /.*::board(\d+)_Click/; # error checking here :) set_clip($numb); }