Talk some sense into your customer. Forcing you to write your own version of something that already exists in a widely used module will make the system less stable, not more.
In addition to Expect, you might check out IPC::Run.
Comment on Re: Interactive Input without Expect.pm