I think the Bash vs Perl example there is not exactly fair, since in Perl you're not assigning to ls_output first. You could do the same in bash, and it's arguably just as expressive:
(( `ls | wc -l` > 100 )) && echo "many files" || echo "few files"