ついでにいうと>>749は勘違いしてるかもしれんが、

# pacage Windowがあるとして
$window = &Window::new(); # 構造体へのリファレンスを返す
&Window::setup($window, @args)
&Window::show($window);

とか言うのも立派なオブジェクト指向になってる。それを

$window = new Window();
$window->setup(@args);
$window->show();

と書けるようにしただけ。
君が言ってるのは、「オブジェクトなんていらないジャン。変数$windowがあればいいじゃん」ってことだろうけど、
その変数$windowをオブジェクトって呼んでるんだよ。