Perl の括弧

Perl の括弧による優先順位の扱いが良く分からない。とくにサブルーチンが絡んだ場合が分からない。たとえば、

use strict;

my $x = "hogehoge";
my $y = 3;
my $z0 = (length $x) - $y;
my $z1 = length($x) - $y;
my $z2 = length ($x) - $y;
my $z3 = length $x - $y;
print "z0 = " . $z0 . "\n";
print "z1 = " . $z1 . "\n";
print "z2 = " . $z2 . "\n";
print "z3 = " . $z3 . "\n";

を実行すると、結果はつぎのようになる。

z0 = 5
z1 = 5
z2 = 5
z3 = 2
Argument "hogehoge" isn't numeric in subtraction (-) at A.pl line 8.

(なお、ここで結果の最終行は標準エラー出力であり、他の標準出力との順序関係は不定である。)
大概は $z1 のような書き方だと思うが、この丸括弧はなにを意味するのだろうか。サブルーチン呼び出しの引数の位置を意味する括弧なのだろうか。それとも演算子の優先順位を変えるための括弧なのだろうか。もし後者だと仮定すると、$z2 と $z3 の違いはなぜおこるんだ?ということは前者のほうか?