my %attrs = ( foo => 1, bar => 2, ..., baz => 50, ); while (my ($attr, $val) = each %attrs) { $obj->set_value($attr => $val); } #### $obj->set_value_foo(1); $obj->set_value_bar(2); ...; $obj->set_value_baz(50); #### my %attrs = ( foo => 1, bar => 2, ..., baz => 50, ); while (my ($attr, $val) = each %attrs) { $obj->${\"set_value_$attr"}($val); }