in reply to Thorny design problem

Personally, I think your first approach is probably the best in terms of keeping the details in individual files, and those files in a separate directory.

As for the calling mechanism, eval will certainly work, as would a system() call... Have you thought about a dispatch table? It probably wouldn't be any cleaner, but it might be.

I have something quite similar where I have lots of detailed expect scripts that go off and do some function to lots of different network equipment. In that case, I'm actually calling those via system(); and yes I know about the CPAN expect module, I just haven't had the tuits to redo all the work already done in expect...

HTH,

-Scott