my $output_directory="TEMPORARY"; sub open_directory_file { print "Open files from directory...\n"; my @all_file_contents; my $Directory = File::Spec->canonpath( $mw->chooseDirectory() ); my $shortpath = Win32::GetShortPathName( "$Directory" ); chdir($shortpath) or die "$!"; opendir (DIR, "$shortpath") or die "$!"; my @files = grep {/.*?\.txt/} readdir DIR; close DIR; } sub create_file{ open (MYFILE, ">$output_directory/token.txt"); print MYFILE "ciao"; close (MYFILE); } #### my $output_directory="TEMPORARY"; sub open_directory_file { print "Open files from directory...\n"; my @all_file_contents; #added following line my $pwd = cwd(); my $Directory = File::Spec->canonpath( $mw->chooseDirectory() ); my $shortpath = Win32::GetShortPathName( "$Directory" ); chdir($shortpath) or die "$!"; opendir (DIR, "$shortpath") or die "$!"; my @files = grep {/.*?\.txt/} readdir DIR; close DIR; #added following line #go back to original directory chdir($pwd); }