Hi jmaas,
Because in Perl parentheses are often optional, sub_A sub_B; means sub_A(sub_B()); (no matter if it's split on two lines), i.e. the return value of a call to sub_B() is being used as the argument(s) to sub_A(), which means sub_B() has to be called first. B::Deparse can show you this (edited slightly for brevity):
$ perl -MO=Deparse,-p -e 'sub a {} sub b {} a; b;'
sub a { }
sub b { }
a();
b();
$ perl -MO=Deparse,-p -e 'sub a {} sub b {} a b;'
sub a { }
sub b { }
a(b());
Hope this helps,
-- Hauke D