use Tk; use strict; my $mw = MainWindow->new(); my $b = $mw->Button(-text=>"Click me",-command=>sub{foo()})->pack(); MainLoop; sub foo { my $fname = $mw->getOpenFile(-initialdir=>"/tmp",-title=>"trying"); return unless defined ($fname); print "You've selected $fname\n"; }