td(img({-src=>'/css/ico/notepencil32.png', -alt=>'ahoj', -height=>'23'
+, -width=>'23' -id=>'myid'}))
+ ^
You omitted the comma (so you're subtracting 'id' from 23...).
With warnings on, you'd have gotten "Argument "id" isn't numeric in subtraction (-) at ..."
Update: ...and this is for the downvoter, who was apparently too lazy to test himself:
$ perl -wMCGI=:standard -le"print img({-src=>'/css/ico/notepencil32.pn
+g', -alt=>'ahoj', -height=>'23', -width=>'23', -id=>'myid'})"
<img height="23" src="/css/ico/notepencil32.png" id="myid" width="23"
+alt="ahoj" />