Thanks, hangon.
I thought about your suggestion to make all parameters non-positional, but it occurs to me that there are a significant number of Tk methods (most notably in Tk::Canvas) where mandatory parameters are positional, and are followed by the optional ones. Here is just a partial list:
$canvas->addtag(tag, searchSpec, ?arg, arg, ...?)
$canvas->bbox(tagOrId, ?tagOrId, tagOrId, ...?)
$canvas->create(type, x, y, ?x, y, ...?, ?option, value, ...?)
$canvas->createArc(x1, y1, x2, y2, ?option, value, option, value, ...?
+)
$canvas->createBitmap(x, y, ?option, value, option, value, ...?)
$canvas->createGrid(x1, y1, x2, y2, ?option, value, option, value, ...
+?)
$canvas->createImage(x, y, ?option, value, option, value, ...?)
$canvas->createLine(x1, y1..., xn, yn, ?option, value, option, value,
+...?)
$canvas->createOval(x1, y1, x2, y2, ?option, value, option, value, ...
+?)
$canvas->createPolygon(x1, y1, ..., xn, yn, ?option, value, option, va
+lue, ...?)
$canvas->createRectangle(x1, y1, x2, y2, ?option, value, option, value
+, ...?)
$canvas->createText(x, y, ?option, value, option, value, ...?)
$canvas->createWindow(x, y?, -option=>value, -option=>value, ...?)
As the widget and the single-click and double-click callbacks are mandatory, it seems like they work more naturally as positional arguments.
s''(q.S:$/9=(T1';s;(..)(..);$..=substr+crypt($1,$2),2,3;eg;print$..$/
|