My experience with SSI is that it's lightning fast but pretty limited in functionality. In time you'll probably think up lots of neat functions you want to include but can't because SSI isn't really a programming language, just a method of customizing pages.
If the number of user groups in your application is low, and the main performance hit you're worried about is the cost of data manipulation and page generation rather than the overhead of spawning a new perl process for each request, you'd probably do allright with some kind of caching scheme:
- A request for a customized page arrives.
- Your script checks the cache (on disk) if that page has already been generated for this user group. If so, it is read from file and served to the client.
- Otherwise, a new page is generated from scratch, saved to the cache, and served to the client.
Of course, running under mod_perl would allow you to keep the cache in memory, but I imagine that even a simple file cache would speed up execution.
Cheers,
-- moodster