#!/usr/local/bin/perl -w use Tk; use strict; use vars qw( $mw ); use vars qw( $b_array); use Data::Dumper; use threads; use threads::shared; my @array = (); threads->new(\&mysub); $mw = MainWindow->new( -relief => 'flat' ); $mw->geometry('50x50+50+50'); $b_array = $mw->Button( -pady => '1', -relief => 'sunken', -padx => '1', -state => 'normal', -justify => 'center', -text => 'Array', -command => \&button_pressed )->place( -x => 25, -y => 25); #&UpdateArray("YES"); #=> from here is OK when button_pressed MainLoop(); sub button_pressed { print Dumper(\@array); } sub UpdateArray { my $data = $_[0]; my $j = 0; for (my $i=0; $i array is empty when button_pressed }