WWW::Mechanize で HTTP ステータスによって die するのを回避する
通常の初期設定では、WWW::Mechanize は HTTP ステータスで 400 や 404 コードが返されると、WWW::Mechanize は die を起こして処理を中断してしまう。
そのため、400 や 404 コードが返された場合の処理が記述できない。
対応方法
use WWW::Mechanize; my $mech = WWW::Mechanize->new( autochek => 0 ); $mech->get('http://www.example.com/return/404_code.html'); if ($mech->is_success) { # HTTP レスポンスを正常に受け取れた場合の処理 ... } else { if (400 == $mech->status) { # Bad Request の場合の処理を記述 ... } elsif (503 == $mech->status) { # Server Error の場合の処理を記述 ... } elsif (404 == $mech->status) { # URL が存在しない場合の処理を記述 ... } else { # その他のエラーの場合の処理を記述 ... } }