#5 Error Message "unmatched open brace in list" in GUI Builder

open
nobody
None
5
2008-04-15
2008-04-15
Anonymous
No

Looking at the activity, I think this project is not maintened anymore, but maybe this will help somebody...

I have a large Perl/TK 8.4 project based on the ActiveState GUI Builder Build 146.
Someday I got an error message while generating the .pl and _ui.pm files.
Header: Error Generating Include File
Message: unmatched open brace in list

The .ui and _ui.pm file were saved properly, but if I added another button, the callback sub was not generated. The .pl file should contain something like:

# _button_1_command --
#
# Callback to handle $_button_1 widget option -command
#
# ARGS:
# <NONE>
#
sub _button_1_command { }

but that code was never generated.

I found out that this happens if you have a quoutet statement without a closing brace.
Example:
sub _button_1_command {
#if ($x==5) {
if ($x==5 && &y==10) {
print "Hello World\n";
}
}

As you see, the first statement ist quoted, so it is ignored by perl. But the GUI-Builder produces an error messages and the .pl file is never updated. If I change the line to
#if ($x==5) { }
(notice the additional "}"
no error occures.

This behaviour occures only within the auto generated ..._command subs and not within
# BEGIN USER CODE

# END USER CODE

I also figured out that this bug is not present in SpecTcl122a.

Discussion

  • Logged In: NO

    Sorry,
    the line:
    if ($x==5 && &y==10) {

    should be more like:
    if ($x==5 && $y==10) {