my $last = "hoge" if($flag); はif($flag){my $last = "hoge";}と同じだ。
だから>>313の様に$flagが常に0の場合はこのブロックの中身が実行されることはない。
よって$lastには何の影響も与えないのでは?