xref: /openbsd-src/gnu/usr.bin/perl/t/lib/feature/bareword_filehandles (revision 5486feefcc8cb79b19e014ab332cc5dfd05b3b33)
1256a93a4Safresh1Test no feature bareword_filehandles
2256a93a4Safresh1
3256a93a4Safresh1todo:
4256a93a4Safresh1
5256a93a4Safresh1print HANDLE
6256a93a4Safresh1print HANDLE LIST
7256a93a4Safresh1printf HANDLE
8256a93a4Safresh1printf HANDLE LIST
9256a93a4Safresh1say HANDLE
10256a93a4Safresh1say HANDLE LIST
11256a93a4Safresh1readline
12256a93a4Safresh1<> / <HANDLE>
13256a93a4Safresh1<<>> - has an implicit argument
14256a93a4Safresh1truncate
15256a93a4Safresh1stat
16256a93a4Safresh1-X
17256a93a4Safresh1lstat
18256a93a4Safresh1open
19256a93a4Safresh1close
20256a93a4Safresh1eof
21256a93a4Safresh1fileno
22256a93a4Safresh1flock
23256a93a4Safresh1getc
24256a93a4Safresh1read
25256a93a4Safresh1write ?
26256a93a4Safresh1seek
27256a93a4Safresh1tell
28256a93a4Safresh1select
29256a93a4Safresh1sysopen
30256a93a4Safresh1sysread
31256a93a4Safresh1syswrite
32256a93a4Safresh1sysseek
33256a93a4Safresh1pipe
34256a93a4Safresh1
35256a93a4Safresh1socket
36256a93a4Safresh1connect
37256a93a4Safresh1bind
38256a93a4Safresh1listen
39256a93a4Safresh1recv
40256a93a4Safresh1send
41256a93a4Safresh1setsockopt
42256a93a4Safresh1getsockopt
43256a93a4Safresh1shutdown
44256a93a4Safresh1socketpair
45256a93a4Safresh1accept
46256a93a4Safresh1getpeername
47256a93a4Safresh1getsockname
48256a93a4Safresh1
49256a93a4Safresh1binmode
50256a93a4Safresh1ioctl
51256a93a4Safresh1fcntl
52256a93a4Safresh1chmod - doesn't accept bareword handles
53256a93a4Safresh1chown - doesn't accept bareword handles
54256a93a4Safresh1
55256a93a4Safresh1opendir
56256a93a4Safresh1closedir
57256a93a4Safresh1readdir
58256a93a4Safresh1seekdir
59256a93a4Safresh1telldir
60256a93a4Safresh1rewinddir
61256a93a4Safresh1chdir
62256a93a4Safresh1
63256a93a4Safresh1also check
64256a93a4Safresh1
65256a93a4Safresh1sort
66256a93a4Safresh1map
67256a93a4Safresh1grep
68256a93a4Safresh1
69256a93a4Safresh1aren't modified
70256a93a4Safresh1
71256a93a4Safresh1
72256a93a4Safresh1__END__
73256a93a4Safresh1# NAME defaults and explicitly on
74256a93a4Safresh1#!perl -c
75256a93a4Safresh1use File::Temp qw(tempfile);
76256a93a4Safresh1use Fcntl qw(SEEK_SET);
77256a93a4Safresh1use Socket;
78256a93a4Safresh1my ($fh, $name) = tempfile;
79256a93a4Safresh1open FOO, ">", File::Spec->devnull;
80256a93a4Safresh1print FOO;
81256a93a4Safresh1print FOO "Hello";
82256a93a4Safresh1printf FOO "Hello";
83256a93a4Safresh1seek FOO, 0, SEEK_SET;
84256a93a4Safresh1truncate FOO, 0;
85256a93a4Safresh1print FOO "Something read\n";
86256a93a4Safresh1close FOO;
87256a93a4Safresh1<FOO>;
88256a93a4Safresh1{
89256a93a4Safresh1    local *ARGV;
90256a93a4Safresh1    local *ARGVOUT;
91256a93a4Safresh1    @ARGV = $name;
92256a93a4Safresh1    <<>>;
93256a93a4Safresh1    <>;
94256a93a4Safresh1}
95256a93a4Safresh1pipe FH1, FH2;
96256a93a4Safresh1socketpair S1, S2, AF_UNIX, SOCK_STREAM, PF_UNSPEC;
97256a93a4Safresh1shutdown S1, 0;
98256a93a4Safresh1
99256a93a4Safresh1use feature "bareword_filehandles";
100256a93a4Safresh1open FOO, ">", File::Spec->devnull;
101256a93a4Safresh1print FOO;
102256a93a4Safresh1print FOO "Hello";
103256a93a4Safresh1printf FOO "Hello";
104256a93a4Safresh1seek FOO, 0, SEEK_SET;
105256a93a4Safresh1truncate FOO, 0;
106256a93a4Safresh1print FOO "Something read\n";
107256a93a4Safresh1close FOO;
108256a93a4Safresh1<FOO>;
109256a93a4Safresh1{
110256a93a4Safresh1    local *ARGV;
111256a93a4Safresh1    local *ARGVOUT;
112256a93a4Safresh1    @ARGV = $name;
113256a93a4Safresh1    <<>>;
114256a93a4Safresh1    <>;
115256a93a4Safresh1}
116256a93a4Safresh1pipe FH3, FH4;
117256a93a4Safresh1socketpair S3, S4, AF_UNIX, SOCK_STREAM, PF_UNSPEC;
118256a93a4Safresh1shutdown S3, 0;
119256a93a4Safresh1
120256a93a4Safresh1EXPECT
121256a93a4Safresh1- syntax OK
122256a93a4Safresh1########
123256a93a4Safresh1# NAME check atan2() with a handle doesn't trigger bareword filehandle errors
124256a93a4Safresh1no feature "bareword_filehandles", "indirect";
125256a93a4Safresh1my $x = atan2(FOO 1, 2);
126256a93a4Safresh1# my original approach to this hooked newGVREF(), which the parsing for most LOPs (as with
127256a93a4Safresh1# atan2() above) could end up calling newGVREF(), producing an unexpected error message.
128256a93a4Safresh1EXPECT
129256a93a4Safresh1OPTIONS fatal
130f2a19305Safresh1Number found where operator expected (Do you need to predeclare "FOO"?) at - line 2, near "FOO 1"
131256a93a4Safresh1Missing comma after first argument to atan2 function at - line 2, near "2)"
132256a93a4Safresh1Execution of - aborted due to compilation errors.
133256a93a4Safresh1########
134256a93a4Safresh1# NAME print HANDLE LIST, printf HANDLE LIST, print HANDLE, printf HANDLE
135256a93a4Safresh1use File::Spec;
136256a93a4Safresh1open FOO, ">", File::Spec->devnull or die $!;
137256a93a4Safresh1$_ = "abc";
138256a93a4Safresh1print FOO "test\n";
139256a93a4Safresh1printf FOO "test\n";
140256a93a4Safresh1print FOO;
141256a93a4Safresh1printf FOO;
142256a93a4Safresh1no feature "bareword_filehandles";
143256a93a4Safresh1print FOO "test2\n";
144256a93a4Safresh1printf FOO "test2\n";
145256a93a4Safresh1print FOO;
146256a93a4Safresh1printf FOO;
147256a93a4Safresh1print STDERR;
148256a93a4Safresh1print STDOUT;
149256a93a4Safresh1print ARGV;
150256a93a4Safresh1print ARGVOUT;
151256a93a4Safresh1print DATA;
152256a93a4Safresh1print STDIN;
153256a93a4Safresh1EXPECT
154256a93a4Safresh1OPTIONS fatal
155256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 9.
156256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 10.
157256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 11.
158256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 12.
159256a93a4Safresh1Execution of - aborted due to compilation errors.
160256a93a4Safresh1########
161256a93a4Safresh1# NAME say HANDLE LIST, say HANDLE
162256a93a4Safresh1use File::Spec;
163256a93a4Safresh1use feature "say";
164256a93a4Safresh1open FOO, ">", File::Spec->devnull or die $!;
165256a93a4Safresh1$_ = "abc";
166256a93a4Safresh1say FOO "test\n";
167256a93a4Safresh1say FOO;
168256a93a4Safresh1no feature "bareword_filehandles";
169256a93a4Safresh1say FOO "test2\n";
170256a93a4Safresh1say FOO;
171256a93a4Safresh1EXPECT
172256a93a4Safresh1OPTIONS fatal
173256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 8.
174256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 9.
175256a93a4Safresh1Execution of - aborted due to compilation errors.
176256a93a4Safresh1########
177256a93a4Safresh1# NAME readline FOO, readline, <>, <FOO>
178256a93a4Safresh1use File::Spec;
179256a93a4Safresh1open FOO, "<", File::Spec->devnull or die $!;
180256a93a4Safresh1my $x = readline FOO;
181256a93a4Safresh1$x .= readline FOO; # rcatline
182256a93a4Safresh1$x = readline(FOO); # parsed a little differently with ()
183256a93a4Safresh1$x .= readline(FOO);
184256a93a4Safresh1$x = <FOO>;
185256a93a4Safresh1$x .= <FOO>;
186256a93a4Safresh1no feature "bareword_filehandles";
187256a93a4Safresh1$x = readline FOO;
188256a93a4Safresh1$x .= readline FOO; # rcatline
189256a93a4Safresh1$x = readline(FOO); # parsed a little differently with ()
190256a93a4Safresh1$x .= readline(FOO);
191256a93a4Safresh1$x = <FOO>;
192256a93a4Safresh1$x .= <FOO>;
193256a93a4Safresh1$x = readline STDIN;
194256a93a4Safresh1$x = <STDIN>;
195256a93a4Safresh1EXPECT
196256a93a4Safresh1OPTIONS fatal
197256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 10.
198256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 11.
199256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 12.
200256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 13.
201256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 14.
202256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 15.
203256a93a4Safresh1Execution of - aborted due to compilation errors.
204256a93a4Safresh1########
205256a93a4Safresh1# NAME truncate
206256a93a4Safresh1use strict;
207256a93a4Safresh1use warnings;
208256a93a4Safresh1# if all goes well this doesn't run anyway
209256a93a4Safresh1my $name = "bare$$.tmp";
210256a93a4Safresh1END { unlink $name if $name; }
211256a93a4Safresh1open FOO, ">", $name or die;
212256a93a4Safresh1print FOO "Non-zero length data\n";
213256a93a4Safresh1truncate FOO, 2;
214256a93a4Safresh1no feature "bareword_filehandles";
215256a93a4Safresh1truncate FOO, 1;
216256a93a4Safresh1EXPECT
217256a93a4Safresh1OPTIONS fatal
218256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 10.
219256a93a4Safresh1Execution of - aborted due to compilation errors.
220256a93a4Safresh1########
221256a93a4Safresh1# NAME stat, lstat, -X
222256a93a4Safresh1use File::Spec;
223256a93a4Safresh1open FOO, "<", File::Spec->devnull;
224256a93a4Safresh1my @x = stat FOO;
225256a93a4Safresh1@x = lstat FOO;
226256a93a4Safresh1my $x = -s FOO;
227256a93a4Safresh1no feature "bareword_filehandles";
228256a93a4Safresh1@x = stat FOO;
229256a93a4Safresh1@x = lstat FOO;
230256a93a4Safresh1$x = -s FOO;
231256a93a4Safresh1EXPECT
232256a93a4Safresh1OPTIONS fatal
233256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 7.
234256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 8.
235256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 9.
236256a93a4Safresh1Execution of - aborted due to compilation errors.
237256a93a4Safresh1########
238256a93a4Safresh1# NAME open, close, eof, fileno
239256a93a4Safresh1use File::Spec;
240256a93a4Safresh1open FOO, "<", File::Spec->devnull;
241256a93a4Safresh1my $x = eof FOO;
242256a93a4Safresh1$x = fileno FOO;
243256a93a4Safresh1close FOO;
244256a93a4Safresh1no feature "bareword_filehandles";
245256a93a4Safresh1open FOO, "<", File::Spec->devnull;
246256a93a4Safresh1$x = eof FOO;
247256a93a4Safresh1$x = fileno FOO;
248256a93a4Safresh1close FOO;
249256a93a4Safresh1EXPECT
250256a93a4Safresh1OPTIONS fatal
251256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 7.
252256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 8.
253256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 9.
254256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 10.
255256a93a4Safresh1Execution of - aborted due to compilation errors.
256256a93a4Safresh1########
257256a93a4Safresh1# NAME flock
258256a93a4Safresh1use Fcntl ":flock";
259256a93a4Safresh1open FOO, "<", $0 or die;
260256a93a4Safresh1flock FOO, LOCK_SH;
261256a93a4Safresh1no feature "bareword_filehandles";
262256a93a4Safresh1flock FOO, LOCK_UN;
263256a93a4Safresh1EXPECT
264256a93a4Safresh1OPTIONS fatal
265256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 5.
266256a93a4Safresh1Execution of - aborted due to compilation errors.
267256a93a4Safresh1########
268256a93a4Safresh1# NAME getc, read, seek, tell
269256a93a4Safresh1open FOO, "<", $0 or die;
270256a93a4Safresh1my $x = getc FOO;
271256a93a4Safresh1read(FOO, $x, 1);
272256a93a4Safresh1$x = tell FOO;
273256a93a4Safresh1seek FOO, 0, 0;
274256a93a4Safresh1no feature "bareword_filehandles";
275256a93a4Safresh1$x = getc FOO;
276256a93a4Safresh1read(FOO, $x, 1);
277256a93a4Safresh1$x = tell FOO;
278256a93a4Safresh1seek FOO, 0, 0;
279256a93a4Safresh1EXPECT
280256a93a4Safresh1OPTIONS fatal
281256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 7.
282256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 8.
283256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 9.
284256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 10.
285256a93a4Safresh1Execution of - aborted due to compilation errors.
286256a93a4Safresh1########
287256a93a4Safresh1# NAME select
288256a93a4Safresh1open FOO, "<", $0 or die;
289256a93a4Safresh1my $old = select FOO;
290256a93a4Safresh1no feature "bareword_filehandles";
291256a93a4Safresh1select FOO;
292256a93a4Safresh1select $old;
293256a93a4Safresh1EXPECT
294256a93a4Safresh1OPTIONS fatal
295256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 4.
296256a93a4Safresh1Execution of - aborted due to compilation errors.
297256a93a4Safresh1########
298256a93a4Safresh1# NAME sysopen, sysread, syswrite, sysseek
299256a93a4Safresh1use Fcntl;
300256a93a4Safresh1use File::Spec;
301256a93a4Safresh1sysopen FOO, File::Spec->devnull, O_RDWR or die;
302256a93a4Safresh1sysread FOO, my $x, 10;
303256a93a4Safresh1syswrite FOO, "Test";
304256a93a4Safresh1my $y = sysseek FOO, 0, SEEK_CUR;
305256a93a4Safresh1close FOO;
306256a93a4Safresh1no feature "bareword_filehandles";
307256a93a4Safresh1sysopen FOO, File::Spec->devnull, O_RDWR or die;
308256a93a4Safresh1sysread FOO, my $x, 10;
309256a93a4Safresh1syswrite FOO, "Test";
310256a93a4Safresh1my $y = sysseek FOO, 0, SEEK_CUR;
311256a93a4Safresh1EXPECT
312256a93a4Safresh1OPTIONS fatal
313256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 9.
314256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 10.
315256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 11.
316256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 12.
317256a93a4Safresh1Execution of - aborted due to compilation errors.
318256a93a4Safresh1########
319256a93a4Safresh1# NAME pipe
320256a93a4Safresh1my $fh;
321256a93a4Safresh1pipe IN, $fh;
322256a93a4Safresh1pipe $fh, OUT;
323256a93a4Safresh1pipe IN, OUT;
324256a93a4Safresh1no feature "bareword_filehandles";
325256a93a4Safresh1pipe IN, $fh;
326256a93a4Safresh1pipe $fh, OUT;
327256a93a4Safresh1pipe IN, OUT;
328256a93a4Safresh1EXPECT
329256a93a4Safresh1OPTIONS fatal
330256a93a4Safresh1Bareword filehandle "IN" not allowed under 'no feature "bareword_filehandles"' at - line 6.
331256a93a4Safresh1Bareword filehandle "OUT" not allowed under 'no feature "bareword_filehandles"' at - line 7.
332256a93a4Safresh1Bareword filehandle "IN" not allowed under 'no feature "bareword_filehandles"' at - line 8.
333256a93a4Safresh1Bareword filehandle "OUT" not allowed under 'no feature "bareword_filehandles"' at - line 8.
334256a93a4Safresh1Execution of - aborted due to compilation errors.
335256a93a4Safresh1########
336256a93a4Safresh1# NAME socket, connect, bind, listen
337256a93a4Safresh1my $fh;
338256a93a4Safresh1# this won't run, just use dummy values for domain, type, protocol
339256a93a4Safresh1socket(FOO, 0, 0,0);
340256a93a4Safresh1connect(FOO, "abc");
341256a93a4Safresh1bind(FOO, "abc");
342256a93a4Safresh1listen(FOO, 5);
343256a93a4Safresh1no feature "bareword_filehandles";
344256a93a4Safresh1socket(FOO, 0, 0,0);
345256a93a4Safresh1connect(FOO, "abc");
346256a93a4Safresh1bind(FOO, "abc");
347256a93a4Safresh1listen(FOO, 5);
348256a93a4Safresh1EXPECT
349256a93a4Safresh1OPTIONS fatal
350256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 8.
351256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 9.
352256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 10.
353256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 11.
354256a93a4Safresh1Execution of - aborted due to compilation errors.
355256a93a4Safresh1########
356256a93a4Safresh1# NAME accept
357256a93a4Safresh1accept(FOO, CHILD);
358256a93a4Safresh1accept($fh, CHILD);
359256a93a4Safresh1accept(FOO, $fh);
360256a93a4Safresh1no feature "bareword_filehandles";
361256a93a4Safresh1accept(FOO, CHILD);
362256a93a4Safresh1accept($fh, CHILD);
363256a93a4Safresh1accept(FOO, $fh);
364f2a19305Safresh1accept(*FOO, *CHILD);
365f2a19305Safresh1EXPECT
366f2a19305Safresh1OPTIONS fatal
367f2a19305Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 5.
368f2a19305Safresh1Bareword filehandle "CHILD" not allowed under 'no feature "bareword_filehandles"' at - line 5.
369f2a19305Safresh1Bareword filehandle "CHILD" not allowed under 'no feature "bareword_filehandles"' at - line 6.
370f2a19305Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 7.
371f2a19305Safresh1Execution of - aborted due to compilation errors.
372f2a19305Safresh1########
373f2a19305Safresh1# NAME accept some more
374f2a19305Safresh1accept FOO, CHILD ;
375f2a19305Safresh1accept $fh, CHILD ;
376f2a19305Safresh1accept FOO, $fh ;
377f2a19305Safresh1no feature "bareword_filehandles";
378f2a19305Safresh1accept FOO, CHILD ;
379f2a19305Safresh1accept $fh, CHILD ;
380f2a19305Safresh1accept FOO, $fh;
381f2a19305Safresh1package BAR {}
382f2a19305Safresh1accept QUUX BAR, $fh;
383f2a19305Safresh1sub BAR::QUUX { $fh }
384256a93a4Safresh1EXPECT
385256a93a4Safresh1OPTIONS fatal
386256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 5.
387256a93a4Safresh1Bareword filehandle "CHILD" not allowed under 'no feature "bareword_filehandles"' at - line 5.
388256a93a4Safresh1Bareword filehandle "CHILD" not allowed under 'no feature "bareword_filehandles"' at - line 6.
389256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 7.
390256a93a4Safresh1Execution of - aborted due to compilation errors.
391256a93a4Safresh1########
392256a93a4Safresh1# NAME send, recv, setsockopt, getsockopt
393256a93a4Safresh1send FOO, "abc", 0;
394256a93a4Safresh1recv FOO, my $x, 10, 0;
395256a93a4Safresh1setsockopt FOO, 0, 0, 0;
396256a93a4Safresh1my $y = getsockopt FOO, 0, 0;
397256a93a4Safresh1no feature "bareword_filehandles";
398256a93a4Safresh1send FOO, "abc", 0;
399256a93a4Safresh1recv FOO, my $x, 10, 0;
400256a93a4Safresh1setsockopt FOO, 0, 0, 0;
401256a93a4Safresh1my $y = getsockopt FOO, 0, 0;
402256a93a4Safresh1EXPECT
403256a93a4Safresh1OPTIONS fatal
404256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 6.
405256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 7.
406256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 8.
407256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 9.
408256a93a4Safresh1Execution of - aborted due to compilation errors.
409256a93a4Safresh1########
410256a93a4Safresh1# NAME shutdown, getsockname, getpeername
411256a93a4Safresh1shutdown FOO, 0;
412256a93a4Safresh1my $sockname = getsockname FOO;
413256a93a4Safresh1my $peername = getpeername FOO;
414256a93a4Safresh1no feature "bareword_filehandles";
415256a93a4Safresh1shutdown FOO, 0;
416256a93a4Safresh1$sockname = getsockname FOO;
417256a93a4Safresh1$peername = getpeername FOO;
418256a93a4Safresh1EXPECT
419256a93a4Safresh1OPTIONS fatal
420256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 5.
421256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 6.
422256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 7.
423256a93a4Safresh1Execution of - aborted due to compilation errors.
424256a93a4Safresh1########
425256a93a4Safresh1# NAME socketpair
426256a93a4Safresh1my $fh;
427256a93a4Safresh1socketpair IN, $fh, 0, 0, 0;
428256a93a4Safresh1socketpair $fh, OUT, 0, 0, 0;
429256a93a4Safresh1socketpair IN, OUT, 0, 0, 0;
430256a93a4Safresh1no feature "bareword_filehandles";
431256a93a4Safresh1socketpair IN, $fh, 0, 0, 0;
432256a93a4Safresh1socketpair $fh, OUT, 0, 0, 0;
433256a93a4Safresh1socketpair IN, OUT, 0, 0, 0;
434256a93a4Safresh1EXPECT
435256a93a4Safresh1OPTIONS fatal
436256a93a4Safresh1Bareword filehandle "IN" not allowed under 'no feature "bareword_filehandles"' at - line 6.
437256a93a4Safresh1Bareword filehandle "OUT" not allowed under 'no feature "bareword_filehandles"' at - line 7.
438256a93a4Safresh1Bareword filehandle "IN" not allowed under 'no feature "bareword_filehandles"' at - line 8.
439256a93a4Safresh1Bareword filehandle "OUT" not allowed under 'no feature "bareword_filehandles"' at - line 8.
440256a93a4Safresh1Execution of - aborted due to compilation errors.
441256a93a4Safresh1########
442256a93a4Safresh1# NAME binmode, ioctl, fcntl
443256a93a4Safresh1binmode FOO;
444256a93a4Safresh1binmode FOO, ":raw";
445256a93a4Safresh1ioctl FOO, 0, 0;
446256a93a4Safresh1fcntl FOO, 0, 0;
447256a93a4Safresh1no feature "bareword_filehandles";
448256a93a4Safresh1binmode FOO;
449256a93a4Safresh1binmode FOO, ":raw";
450256a93a4Safresh1ioctl FOO, 0, 0;
451256a93a4Safresh1fcntl FOO, 0, 0;
452256a93a4Safresh1EXPECT
453256a93a4Safresh1OPTIONS fatal
454256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 6.
455256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 7.
456256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 8.
457256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 9.
458256a93a4Safresh1Execution of - aborted due to compilation errors.
459256a93a4Safresh1########
460256a93a4Safresh1# NAME opendir, closedir, readdir
461256a93a4Safresh1opendir FOO, ".";
462256a93a4Safresh1my @x = readdir FOO;
463256a93a4Safresh1chdir FOO;
464256a93a4Safresh1closedir FOO;
465256a93a4Safresh1no feature "bareword_filehandles";
466256a93a4Safresh1opendir FOO, ".";
467256a93a4Safresh1my @x = readdir FOO;
468256a93a4Safresh1chdir FOO;
469256a93a4Safresh1closedir FOO;
470256a93a4Safresh1EXPECT
471256a93a4Safresh1OPTIONS fatal
472256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 6.
473256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 7.
474256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 8.
475256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 9.
476256a93a4Safresh1Execution of - aborted due to compilation errors.
477256a93a4Safresh1########
478256a93a4Safresh1# NAME seekdir, telldir, rewinddir
479256a93a4Safresh1use strict;
480256a93a4Safresh1my $x = telldir FOO;
481256a93a4Safresh1seekdir FOO, $x;
482256a93a4Safresh1rewinddir FOO;
483256a93a4Safresh1no feature "bareword_filehandles";
484256a93a4Safresh1my $x = telldir FOO;
485256a93a4Safresh1seekdir FOO, $x;
486256a93a4Safresh1rewinddir FOO;
487256a93a4Safresh1EXPECT
488256a93a4Safresh1OPTIONS fatal
489256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 6.
490256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 7.
491256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 8.
492256a93a4Safresh1Execution of - aborted due to compilation errors.
493256a93a4Safresh1########
494256a93a4Safresh1# NAME file tests
495256a93a4Safresh1-T FOO;
496256a93a4Safresh1-s FOO;
497256a93a4Safresh1no feature "bareword_filehandles";
498256a93a4Safresh1-T FOO;
499256a93a4Safresh1-s FOO;
500256a93a4Safresh1-s _;
501256a93a4Safresh1EXPECT
502256a93a4Safresh1OPTIONS fatal
503256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 4.
504256a93a4Safresh1Bareword filehandle "FOO" not allowed under 'no feature "bareword_filehandles"' at - line 5.
505256a93a4Safresh1Execution of - aborted due to compilation errors.
506256a93a4Safresh1########
507256a93a4Safresh1# NAME subroutine calls
508256a93a4Safresh1use feature "say";
509256a93a4Safresh1no feature "bareword_filehandles";
510256a93a4Safresh1sub foo {}
511256a93a4Safresh1print foo();
512256a93a4Safresh1print foo;
513256a93a4Safresh1say foo();
514256a93a4Safresh1say foo;
515256a93a4Safresh1-x foo();
516256a93a4Safresh1-x foo;
517256a93a4Safresh1EXPECT
518f2a19305Safresh1########
519f2a19305Safresh1# NAME method calls
520f2a19305Safresh1# https://github.com/Perl/perl5/issues/19704
521f2a19305Safresh1use feature "say";
522f2a19305Safresh1no feature "bareword_filehandles";
523f2a19305Safresh1sub foo {}
524f2a19305Safresh1print main->foo();
525f2a19305Safresh1print main->foo;
526f2a19305Safresh1say main->foo();
527f2a19305Safresh1say main->foo;
528f2a19305Safresh1-x main->foo();
529f2a19305Safresh1-x main->foo;
530f2a19305Safresh1EXPECT
531*5486feefSafresh1########
532*5486feefSafresh1# NAME bareword method calls resolving to bareword filehandles
533*5486feefSafresh1# https://github.com/Perl/perl5/issues/19426
534*5486feefSafresh1use feature "say";
535*5486feefSafresh1my $x = "Foo";
536*5486feefSafresh1*Foo = *STDOUT; # make Foo an IO
537*5486feefSafresh1sub Foo::say {
538*5486feefSafresh1  say ">", @_[1..$#_];
539*5486feefSafresh1}
540*5486feefSafresh1Foo->say("Hello"); # calls IO::File->say()
541*5486feefSafresh1no feature "bareword_filehandles";
542*5486feefSafresh1"Foo"->say("Alpha"); # calls IO::File::say();
543*5486feefSafresh1$x->say("Beta"); # calls IO::File::say()
544*5486feefSafresh1Foo->say("Goodbye"); # calls Foo->say(), Foo now in stash cache
545*5486feefSafresh1"Foo"->say("Gamma"); # calls Foo->say()
546*5486feefSafresh1STDOUT->say("stdout"); # calls IO::File->say
547*5486feefSafresh1use feature "bareword_filehandles";
548*5486feefSafresh1Foo->say("Delta"); # calls Foo->say()
549*5486feefSafresh1$x->say("Epsilon"); # calls Foo->say()
550*5486feefSafresh1EXPECT
551*5486feefSafresh1Hello
552*5486feefSafresh1Alpha
553*5486feefSafresh1Beta
554*5486feefSafresh1>Goodbye
555*5486feefSafresh1>Gamma
556*5486feefSafresh1stdout
557*5486feefSafresh1>Delta
558*5486feefSafresh1>Epsilon
559