About a month ago, I inherited a “raging dumpster fire” (in the client’s words) written by no less than 10 different programmers over a long span of time in an old, no longer supported version of perl. As a programmer who likes a challenge, I jumped on it and basically put down everything else I was working on to learn mod_perl1.x and Apache 1.x well enough to make them dance. I had never done any real work with perl, and had only perused a hard-copy book on the topic a few years prior in a bookstore, so the initial learning curve for the project was a little steep.
I wanted to dockerize the development environment in a safe way for portability’s sake, so I set to work weeding through github and dockerhub for a working image that used the server tech I needed. I tried several, but the app would not stand up in any of them, some of the errors were incredibly strange. Eventually, I found one that would stand up all of the copious required libraries and got to work learning about and fixing the many broken project dependencies using symlinks to mimic the file system expected and adding tweaking the many, many config files.
During my searching and learning, I spent a some time on IRC. The guys in #perl were actually pretty helpful once you got past their sarcastic exterior. The battle cry of that channel is pretty much “It’s pretty difficult, it would be better for you to just hire my consulting company. If you really want to beat your head against the wall, start reading over there.”
Eventually I got the whole thing up and running and learned enough perl to fix some of the the higher priority bugs and plan new features. Of course I mentioned that we should rebuild the app in a newer technology, but that’s a little ways off.