"Is there something similar in perl, or is it useless cause we have different ways to build iterative functions (as my first example)?"
In this sense, Perl is no different from other languages, especially c-group languages. Although not all languages have the "$val *= $_ for (1..$max);" syntax, this syntax didn't express any logic that can not be easily expressed otherwise.
Use recursion is not "deprecated", but rather unneccessary in this particular example. This recursion version can be found almost in all text books, not because it is the best way to code this particular logic, but it is probably the best example one can use to demo recursion.