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 $!; } }