I'm new here, hi everyone! 
All is in the title...

All is in the title...

This is precisely when I swap to Perl. I find the shell syntax for arrays and hashes to be fragile. The quoting just gets worse. I try to avoid any libraries and just use plain Perl.in most cases I'd just use Bash because of its support for lists and associative arrays
Are TCL and Perl still relevant?if it gets 10x more complex than this https://forums.freebsd.org/threads/...s-backtracking-a-good-book.86376/#post-580782 ill use tcl, otherwise just stick to sh![]()
Between /bin/sh and perl, there is awk. It is actually quite a bit more effective than most people think.Are TCL and Perl still relevant?
except "external commands (like sed, awk, cut, ...)".
If I recall correctly, GNU version of tools having extended features are commonly used on Linux distros. Even gcc has GNU extentions...most standard unix-tools are also part of the POSIX standard, so as long as you only use the standardized parts/options/functionalities of those tools, your script is still perfectly portable. (except of course the OS ships with non-standard variants - i.e. usually all GNU variants which have deliberately dropped POSIX compliance for many tools)
The extended functionality isn't a problem as long as the POSIX subset is also supported, but some GNU tools have changed or dropped some features specified by POSIX. From my experience, with GNU variants you'd have to *carefully* check the manpage if that tool still offers full POSIX compatibility or that single-letter-option has a completely different meaning on the GNU variant.If I recall correctly, GNU version of tools having extended features are commonly used on Linux distros. Even gcc has GNU extentions...
I don't have extensive non-Unrelated to POSIX, I more than once had to find that GNU AWK is particularly pesky in changed behavior or syntax for various commands; hence in AWK scripts that I intend to share I usually put the target variant in a comment at the very beginning of the script, i.e. "written for one true AWK/NAWK")
one true AWK/NAWK
experience. With the 'release' stemming from the the awk book second edition, however, things might have changed. Also, the FreeBSD's awk(1) has been updated recently And yet, if I remember correctly, it was RMS who proposed the name POSIX...most standard unix-tools are also part of the POSIX standard, so as long as you only use the standardized parts/options/functionalities of those tools, your script is still perfectly portable. (except of course the OS ships with non-standard variants - i.e. usually all GNU variants which have deliberately dropped POSIX compliance for many tools)
Aside from the examples I've seen on various forums in response to specific issues, I'm not very familiar with AWK. It's always seemed like a kind of expert language to me...Between /bin/sh and perl, there is awk. It is actually quite a bit more effective than most people think.
Some example functions.
My general language scale tends to be:
/bin/sh -> Awk -> C/C++
I was in the same boat for many years. Based on an O'Rielly book I thought it was only for quick filters alongside sed. But it wasn't until I did a little bit of compiler design at University and linked the A to Aho, author of the Dragon book and K to Kernighan (The C Programming Language). These guys tend to work on some impressive stuff, so I had a deeper look.I'm not very familiar with AWK. It's always seemed like a kind of expert language to me...
function main(_argc, _argv)
{
print("Hello World!")
return 0
}
BEGIN { exit(main(ARGC, ARGV)) }
$ awk -f main.awk