#!/usr/bin/perl use Tk; use strict; use warnings; my $mw = tkinit; my @buttons; my @data = qw/foo bar baz this that whatever /; for my $i(0..5){ push @buttons, $mw->Button(-text => $data[$i], -command => sub{ print "pressed $data[$i]\n"; print "pressed ", $buttons[$i]->cget('-text'), "\n"; })->pack; } MainLoop();