I used my layout for years, so it is what I'm used to doing. With most of my writing being for my site, I've kept things under one "roof". One of the bigger changes was getting my site work out of my Documents directory, finally, and shedding some of the last vestiges of my time using Windows.
../site ../site/files ../site/files/audio ../site/files/css ../site/files/data ../site/files/images ../site/files/lib
So, I'd been using ../files/lib (when under Documents/www and now just site) as the place where all the modules I wrote went, if they were for my site or not. However, recently I decided to move on from that structure a little bit. So, when I moved the few that really don't belong with my site, I moved them to where the scripts that did use them lived, in this case bin. So now I have...
../bin ../bin/files/data ../bin/files/lib
For me, it makes it easier to work on scripts if their helpers were in the same directory as the script. Maybe one day I will get things together, but for now, this is the way I roll.
My OS is Debian 10 (Buster); my perl versions are 5.28.1 local and 5.16.3 or 5.30.0 on web host depending on the shebang.