my @tags= qw/name gender address/; foreach my $t (@tags) { eval "sub $t { \$state{'$name'} = 1; }"; eval "sub ${t}_ { \$state{'$name'} = 1; }"; }