The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
## name passes by assigning error variable
## failures 0
## cut

my $error = open( $filehandle, $mode, $filename );
my $error = open  $filehandle, $mode, $filename;
my $error = open  OPEN, $open, 'open';
my $error = open  OR, $or, 'or';

#-----------------------------------------------------------------------------

## name passes by "or die"
## failures 0
## cut

open  $filehandle, $mode, $filename   or die 'could not open';
open( $filehandle, $mode, $filename ) or die 'could not open';
open( $filehandle, $mode, $filename ) or croak 'could not open';

#-----------------------------------------------------------------------------

## name passes by "|| die"
## failures 0
## cut

open  $filehandle, $mode, $filename   or die 'could not open';
open( $filehandle, $mode, $filename ) || die 'could not open';
open( $filehandle, $mode, $filename ) || croak 'could not open';

#-----------------------------------------------------------------------------

## name passes by "unless"
## failures 0
## cut

die unless open( $filehandle, $mode, $filename );
die unless open  $filehandle, $mode, $filename;

croak unless open( $filehandle, $mode, $filename );
croak unless open  $filehandle, $mode, $filename;

#-----------------------------------------------------------------------------

## name passes by "if not"
## failures 0
## cut

die if not open( $filehandle, $mode, $filename );
die if not open  $filehandle, $mode, $filename;

croak if not open( $filehandle, $mode, $filename );
croak if not open  $filehandle, $mode, $filename;

die if !open( $filehandle, $mode, $filename );
die if !open  $filehandle, $mode, $filename;

croak if !open( $filehandle, $mode, $filename );
croak if !open  $filehandle, $mode, $filename;

#-----------------------------------------------------------------------------

## name passes with "if" statement
## failures 0
## cut

if ( open( $filehandle, $mode, $filename ) ) { dosomething(); };

#-----------------------------------------------------------------------------

## name Basic failure with parens
## failures 2
## cut

open( $filehandle, $mode, $filename );
open( $filehandle, $filename );

#-----------------------------------------------------------------------------

## name Basic failure no parens
## failures 2
## cut

open $filehandle, $mode, $filename;
open $filehandle, $filename;

#-----------------------------------------------------------------------------

## name Fatal.pm on
## failures 0
## cut

use Fatal qw(open);
open $filehandle, $filename;

#-----------------------------------------------------------------------------

## name Fatal.pm on
## failures 0
## cut

use Fatal 'open';
open $filehandle, $filename;

#-----------------------------------------------------------------------------

## name Fatal.pm on
## failures 0
## cut

use Fatal ('open');
open $filehandle, $filename;

#-----------------------------------------------------------------------------

## name Fatal::Exception on
## failures 0
## cut

use Fatal::Exception 'Exception' => qw(open);
open $filehandle, $filename;

#-----------------------------------------------------------------------------

## name Fatal.pm off
## failures 1
## cut

use Fatal qw(close);
open $filehandle, $filename;

#-----------------------------------------------------------------------------

## name autodie on via no parameters
## failures 0
## cut

use autodie;
open $filehandle;

#-----------------------------------------------------------------------------

## name autodie on via :io
## failures 0
## cut

use autodie qw< :io >;
open $filehandle;

#-----------------------------------------------------------------------------

## name autodie off
## failures 1
## cut

use autodie qw< :system >;
open $filehandle;

#-----------------------------------------------------------------------------

## name autodie on and off
## failures 1
## TODO need to handle autodie lexically.
## cut

use autodie;
{
    no autodie;

    open $filehandle;
}


##############################################################################
#      $URL$
#     $Date$
#   $Author$
# $Revision$
##############################################################################

# Local Variables:
#   mode: cperl
#   cperl-indent-level: 4
#   fill-column: 78
#   indent-tabs-mode: nil
#   c-indentation-style: bsd
# End:
# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround :