We have been running Perlbal in production for over 10 years, as a load balancer and an easily configured reverse proxy with this plugin:
https://github.com/dicole/Perlbal-Plugin-Extredirector
Something like 4-5 years back we started noticing weird behaviour with predictably breaking pipelining requests, which we never fully got to understand. We solved the problem by putting nginx in front of everything, and bypassing Perlbal for a majority of our requests.
We still use the redirector plugin as the fallback to route traffic to a myriad of legacy machines, but over time nginx has replaced Perlbal almost completely for us. It even handles X-Reproxy-Url nowadays, which was the original reason why we chose Perlbal in the first place. We even do our TLS termination in nginx.
Due to the somewhat mystical pipelining bug I would be very cautious in recommending Perlbal for a new project. Also there is very little chance of anyone investing time to implement any kinds of websocket/HTTP2.0 support or whatever the modern web throws at you in the future.
As for serving static files and running PSGI apps we have been happy with lighttpd, but I have heard nginx is the more popular alternative also for that these days. Nginx is definitely not the friendliest piece of software to configure, and some of the more advanced features (which you probably will not need) require you to buy the plus version. However because it is so widely used, you can expect that you can google your way through any problems you might face.
I would thus say nginx is the safest choice to pick, and the skills you learn will probably come to good use also in the future. So many places use it to serve static files, do loadbalancing and reverse proxying, terminate HTTPS connections, and run PSGI apps.