Can't call method判定の件

Can't call method "id" on an undefined value

って言われて怒られた。

元ソース

my $blog = MT::Blog->load ($perms->blog_id);
push @categories, {
        blog_id => $blog->id,
        id => 0,
        label => '',
        description => '',
        odd => $_enumCategories_count++ % 2,
        checked => &_checked ($config_auth_id, $blog->id, 0) };

$blogオブジェクトが未定義状態なんじゃなかろうか、という事で。

my $blog = MT::Blog->load ($perms->blog_id);
if ($blog) {
push @categories, {
        blog_id => $blog->id,
        id => 0,
        label => '',
        description => '',
        odd => $_enumCategories_count++ % 2,
        checked => &_checked ($config_auth_id, $blog->id, 0) };
};

if文でかこっちゃえばエラーでないね!

と思うんですが誰か知りませんかね…?