Что вы предлагаете:
web client <-> Perl CGI script <-> Perl wrapper <-> C program
В этом подходе нет ничего особенно плохого, хотя это явно не самый эффективный способ сделать это. Насколько важна производительность? Если он не должен быть удивительно быстрым, обязательно сделайте это так, что кажется, что его легче всего разрабатывать.
Если вы хотите пойти еще дальше, то очевидная точка оптимизации на приведенной выше схеме - свертывание двух слоев Perl:
web client <-> Perl CGI script <-> C program
Вопрос в том, стоит ли это вашего времени? Вы можете посмотреть на источник для оболочки Perl и решить для себя.
Мой совет - сначала разработать его простым способом, а затем, если по какой-либо причине вы решите, что этого недостаточно, объединить два сценария Perl в один. Но пока не беспокойтесь об этом и продолжайте свою идею.