現在稼動中のASPでHTMLタグをエスケープするとなんかおかしくなるパターンがあったので、調べてみた。
どうやらHTML::FillInFormのバグっぽい。

INPUTタグの箇所でnameが同じ複数の項目に配列でセットすると、重複してHTMLタグがエスケープされるようです。

・template






・fill_formに渡す配列(Data::Dumperにて確認)

'flow_item' => [
'あ11',
'い22',
'う33',
'え44',
'お55',
],

・出来上がるHTML

あ11" name="flow_item" id="flow_item_0" type="text" size="55">
い22" name="flow_item" id="flow_item_1" type="text" size="55"/>
う33" name="flow_item" id="flow_item_2" type="text" size="55"/>
え44" name="flow_item" id="flow_item_3" type="text" size="55"/>

うっはーー!配列が増えると増えるだけエスケープされていくじゃん!!ひでー。

てことで、モジュールを以下のように変更。
うーん、これでほんとに大丈夫なんかなぁ…。

$ diff FillInForm.pm.org FillInForm.pm
305a306
+       last;

実用Perlプログラミング
実用Perlプログラミング