in reply to perltk: error getting values from dynamically generated combo boxes

Tk::Error: bad listbox index "": must be active, anchor, end, @x,y, or a number at /usr/intel/pkgs/perl/5.8.5/lib/site_perl/5.8.5/x86_64-linux/Tk.pm line 247

So. You're giving a listbox index that is either an empty string or perhaps undef. The solution is to not do that :)

Try printing out the values you're using, and then see where the bad value is coming from.

You could also make a temporary tweak to Tk.pm, and have it confess instead.

Replies are listed 'Best First'.
Re^2: perltk: error getting values from dynamically generated combo boxes
by ruhroh (Initiate) on May 07, 2012 at 21:30 UTC

    The problem is that:

    $field_id = $listb$listb_index -> curselection();

    only returns a value if it is retrieving a value from the last listbox created. Otherwise, it will return a value "". I have been looking at the documentation for listbox from: http://search.cpan.org/~srezic/Tk-804.030/pod/Listbox.pod . But I don't know why my script can't retrieve the values from the first created listbox.

    UPDATE: I did a check to see if the previous listboxes existed by just doing a get(0). They all print out dog as expected.

    So the problem is why doesn't curselection not work on the old listboxes and only the most recently "added" listbox?

      I tried to look back where your $listb is coming from. (needs a better name BTW - I've no idea what it is for) and it got confusing pretty quick.

      I suggest regenerating your indentation with perltidy, and taking a closer look at @content and the repeated ties. I'm not familiar with tie, but I'd guess that you're making a giant knot out of all your gui elements there.