use strict; use warnings; my $path = $ARGV[0]; exit unless $path; if ( -w $path ) { print "'$path' is writeable\n"; eval { open my $fh, '>', "$path/foo.txt" or die $!; print $fh "foo\n"; close $fh; }; if ( $@ ) { print "\twrite failed: '$@'\n"; } else { print "\twrite succeeded\n"; unlink "$path/foo.txt" or die $!; } } else { print "'$path' is not writeable\n"; eval { open my $fh, '>', "$path/foo.txt" or die $!; print $fh "foo\n"; close $fh; }; if ( $@ ) { print "\twrite failed: '$@'\n"; } else { print "\twrite succeeded\n"; unlink "$path/foo.txt" or die $!; } } #### perl is_path_writeable.pl folder\ with\ spaces 'folder with spaces/' is writeable write failed: 'Operation not permitted at is_path_writeable.pl line 11. ' #### perl is_path_writeable.pl "C:\Documents and Settings\bke\My Documents" 'C:\Documents and Settings\bke\My Documents' is not writeable write succeeded