例外処理は必須じゃなくてアプリケーションのポリシーによるのだけど、
open が失敗するのはファイルが存在しない場合だけじゃないので、
ファイルの存在確認をしたいだけならファイルテスト演算子を使うべきだし、
open についても die じゃなくてもせめて warn $! ぐらいはしといたほうが、いざ想定外が起こったときにも原因究明に時間かけなくて済むよ。

# >>85 - for popup
use strict;
use warnings;

my $filename = './hobby.dat';
my @default_hobby_list = ("ゲーム", "アニメ", "PC");
my @hobby_list;

if (-f $filename && -r _) {
open my $in, '<', $filename or die "cannot open: $!";
@hobby_list = <$in>;
close $in or die "cannot close: $!";
}

if (@hobby_list) {
chomp @hobby_list;
} else {
# file not found or empty
@hobby_list = @default_hobby_list;
}