I think a key point is suggested by the question "Is Perl the right solution?" This implies a unique correct solution, and I agree with others that in this case (heck, in most cases) there probably is no such. Perl will probably give you a good solution. VB(A) could give you a perfectly fine solution as well. Personally, I'd probably use Smalltalk for this application, based on the little I know about the requirements. So as long as you have a clear idea how it should work, I doubt you should hesitate to go ahead and do it however you want.