if ( -e $file ) { #file exists if ( -f $file ) { #file is also plain do_your_thing(); } else { special_error_handler_for_non_plain_files(); } } else { #file doesn't exist special_error_handler_for_nonexistent_files(); }