え?
こんな高い位置にブロック書くの?
ちょっと書いてみて。

sub error
{
    my($str) = @_;
    print $str;
    exit;
}
sub main
{
    open(FILE, "< uso.txt") or &error("そんなファイルないよ");
    my @lines = <FILE>;
    close(FILE);
    $#lines < 0 and &error("中身ないよ");
    # 以下略
}

はースッキリ快適。