welle has asked for the wisdom of the Perl Monks concerning the following question:
Dear Monks, what I am missing? I have these 2 subrutines: if I run create_file a new file is created, but I if I run it after running the subrutine open_directory_file (which reads the files stored in a directory) the other subrutine gives me errors, namely that I am trying to write on close filehandle MYFILE. Why? Thanks
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); }
The working subrutine open_directory_file (thanks roboticus for the hint!)
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); }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: TK filehandle path
by roboticus (Chancellor) on Jul 09, 2012 at 16:40 UTC | |
by welle (Beadle) on Jul 09, 2012 at 17:05 UTC | |
|
Re: TK filehandle path
by zentara (Cardinal) on Jul 09, 2012 at 16:51 UTC |