perlの日付取得がなんかおかしい

たぶん自分の使い方が変なのだろうけど
index.htmlのタイムスタンプとrdf中の日付を比較する際に
index.htmlのタイムスタンプの取得を
$mtime =( stat($srcfile))[9];
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($mtime);
という風に行っているんだけど
1ヶ月分まるまる日付がずれる・・・
で、localtimeに入れる前に
$mtime=$mtime+30*24*60*60;
とやっていたのが7月になって30の部分を31日にしなければならなくなっている
(というかそしたら直った)
つまりその部分ってその月の日数になるのではないかと予測してるんだけど
何がおかしくてそんな風になってしまっているのがワカランです_| ̄|○
perlの本何か買ってきて読もうかな・・・