以下うえの続き

--------------------

ログ読み込みからログ更新までの間、同じ階層にフォルダを作って
フォルダがある場合は他のユーザーを弾くようにして、
上の処理ではもしロック処理が終了したにも関わらずフォルダが削除されなかった
場合に、そのフォルダの最終変更日を取得し、現在時刻と比較し30秒以上経過して
いたらフォルダを削除するようにしてあるんです。

で、なにがダメかというと、上の処理のコードの書き方を簡略化しようと思い、
以下のようにしましたが、なぜか下のコードだと動きません。なぜか分かるでしょうか?

ここから↓

if (-e $lockfld) || exit;

# 現在時刻を取得し$nowに代入
my($now) = time;
# $lockfldの最終変更時間
my($val) = (stat($lockfld))[9];

# 30秒以上経過していれば削除
if ($now - $val > 30) { &lockend; }