もちろんできるよ。ちゃんと定義したサブルーチンを呼び出してる?
パッケージ変数(グローバル変数)を使う時はなるべく our で宣言しておいた方がわかりやすい。
後々「use strict;」を覚えた時にこの事は役に立つはず。

our $a = 0;

sub test { $a = 5; }
sub test2 { print "値は$aだお\n"; }

test();
test2();

実行結果:値は5だお

ところで、 $a と $b はソートに使う特殊な変数なので、なるべく使わない方がいいよ。$c 以降は問題ない。