use warnings; use strict; use Tk; my $mw = MainWindow->new(); foreach my $fn ( \&use_chooseDirectory, \&use_DirSelect ) { my $dir = $fn->(); if (!defined $dir) { warn 'No directory selected'; } else { warn "Selected $dir"; } } sub use_chooseDirectory { my $dir = $mw->chooseDirectory(-initialdir => '~', -title => 'Choose a directory'); return $dir; } sub use_DirSelect { use Tk::DirSelect; my $ds = $mw->DirSelect(); my $dir = $ds->Show(); return $dir; }