1 ##############################################################################
2 # $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/t/InputOutput/RequireBriefOpen.run $
3 # $Date: 2008-05-11 17:44:01 -0500 (Sun, 11 May 2008) $
6 ##############################################################################
12 open my $fh1, '<', $filename or die;
14 open my $fh2, '<', $filename or die;
16 if (open my $fh3, '<', $filename) {
21 open $fh4, '<', $filename or die;
24 #-----------------------------------------------------------------------------
30 open my $fh1, '<', $filename or die;
33 #-----------------------------------------------------------------------------
39 if (!open my $fh3, '<', $filename) {
45 #-----------------------------------------------------------------------------
47 ## name while .. print
51 open my $fh1, '<', $filename or die;
57 if (open my $fh2, '<', $filename) {
64 #-----------------------------------------------------------------------------
66 ## name basic failures
70 open my $fh1, '<', $filename or die;
72 if (open my $fh2, '<', $filename) {
78 #-----------------------------------------------------------------------------
80 ## name lexical wrong name failure
84 open my $fh1, '<', $filename or die;
86 open my $fh3, '<', $filename or die;
89 #-----------------------------------------------------------------------------
96 open my $fh1, '<', $filename;
100 #-----------------------------------------------------------------------------
102 ## name glob scope failure
107 open FH1, '<', $filename;
111 #-----------------------------------------------------------------------------
113 ## name glob filehandle
118 open FH1, '<', $filename or die;
121 #-----------------------------------------------------------------------------
128 open FH2, '<', $filename or die;
129 open *FH3, '<', $filename or die;
131 #-----------------------------------------------------------------------------
133 ## name glob wrong name failure
138 open FH1, '<', $filename or die;
141 #-----------------------------------------------------------------------------
143 ## name we do not flag non-uppercase globs -- maybe it is a sub call
148 open fh1, '<', $filename or die;
150 #-----------------------------------------------------------------------------
157 open {$foo}, '<', $filename or die;
159 open {*BAR}, '<', $filename or die;
161 #-----------------------------------------------------------------------------
163 ## name allow std handles
167 open STDIN, '<', $filename or die;
168 open STDOUT, '>', $filename or die;
169 open STDERR, '>', $filename or die;
171 #-----------------------------------------------------------------------------
173 ## name allow std globs in blocks
177 open {*STDIN}, '<', $filename or die;
178 open {*STDOUT}, '>', $filename or die;
179 open {*STDERR}, '>', $filename or die;
181 #-----------------------------------------------------------------------------
183 ## name config - pass at default
187 open my $fh1, '<', $filename;
198 #-----------------------------------------------------------------------------
200 ## name config - fail at one after default
204 open my $fh1, '<', $filename;
216 #-----------------------------------------------------------------------------
218 ## name config - set lines to 2
220 ## parms {lines => '2'}
223 open my $fh1, '<', $filename;
227 open my $fh2, '<', $filename;
232 #-----------------------------------------------------------------------------
238 open my $fh1, '<', $filename;
239 sub not_a_recommended_idiom {
243 #-----------------------------------------------------------------------------
251 open my $fh1, '<', $filename or return;
255 #-----------------------------------------------------------------------------
257 ## name long opener sub failure
263 open my $fh1, '<', $filename or return;
276 #-----------------------------------------------------------------------------
278 ## name opener sub failure
284 open my $fh1, '<', $filename or return;
288 #-----------------------------------------------------------------------------
290 ## name unusual lexical syntax
292 ## TODO we do not recognize parenthesized lexical declarations
295 open my ($fh1), '<', $filename;
297 #-----------------------------------------------------------------------------
299 ## name code coverage - unsupported open() calls
304 open($fh); # erroneous call
305 open(get_fh(), '<', $filename); # first arg returns a filehandle -- bad form
306 open(1 + 1, '<', $filename); # nonsense
308 #-----------------------------------------------------------------------------
310 ## name code coverage - glob topic for method call
314 open FH1, '<', $filename;
315 FH1->close; # invalid code
317 #-----------------------------------------------------------------------------
319 ## name code coverage - close is not a function or method call
323 open my $fh, '<', $filename;
326 #-----------------------------------------------------------------------------
328 ## name code coverage - FH is not a glob or scalar
332 open @foo, '<', $filename; # nonsense
333 open @$foo, '<', $filename; # nonsense
334 open my @bar, '<', $filename; # nonsense
336 #-----------------------------------------------------------------------------
340 # cperl-indent-level: 4
342 # indent-tabs-mode: nil
343 # c-indentation-style: bsd
345 # ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround :