А в Perl можно делать контекстно-зависимый вызов функции
А в PHP нельзя

Разве что эмулировать, указывая явно:
function context_driven($params, $return_total=0) {
return $return_total ? array( $params, count($params) ) : $params;
}
$p = context_driven(array(1,2,3)); // [1,2,3]
list($p, $t) = context_driven(array(1,2,3), 1); // [1,2,3], 3