in reply to Canvas group members syntax

If you really want to use the group syntax, this is how you would do it. You just treat the group as any other canvas item and configure it. But this can all be done easier with tags, IMHO, but use what makes sense to you. This code is not perfect, it dosn't handle errors correctly, like trying to Change Group twice.....it aborts..... with tags it would be no problem.....you can have duplicate tags.
#!/usr/bin/perl use warnings; use strict; use Tk; my $mw = MainWindow->new(); # first create a canvas widget my $canvas = $mw->Canvas(width => 300, height => 200)->pack(); my $one = $canvas->createOval(5, 0, 20, 30, -fill => 'blue'); my $two = $canvas->createRectangle(0, 20, 50, 75, -fill => 'red'); my $three = $canvas->createRectangle(40, 80, 100, 175, -fill => 'green +'); my $group_ref = [$one, $two]; my $group = $canvas->createGroup([0, 0], -members => $group_ref); my $dx = 1; my $dy = 1; my $id = Tk::After->new($canvas,10,'repeat', sub {$canvas->move($group, $dx,$dy); my ($x,$y) = $canvas->bbox($group); print "$x $y\n"; if($y >= 100){$dy = -1}; if($x >= 200){$dy = 1; $dx = -1}; if($x < -5){$dx=1;$dy=1}; }); my $gbutton = $mw->Button(-text => 'Change Group', -command => sub{ push @$group_ref, $three; $canvas->itemconfigure($group,-members=> $group_ref) +; })->pack(); my $sbutton = $mw->Button(-text => 'Stop', -command => sub{$id->cancel;})->pack(); my $ebutton = $mw->Button(-text => 'Exit', -command => 'Tk::exit')->pack(); MainLoop();

I'm not really a human, but I play one on earth CandyGram for Mongo