$| = 1;
use warnings;
use Config;
-$Is_VMS = $^O eq 'VMS';
$Is_MacOS = $^O eq 'MacOS';
-plan tests => 107;
+plan tests => 108;
my $Perl = which_perl();
unlink("afile");
}
-
-SKIP: {
- skip "open -| busted and noisy on VMS", 3 if $Is_VMS;
-
+{
ok( open(my $f, '-|', <<EOC), 'open -|' );
$Perl -e "print qq(a row\\n); print qq(another row\\n)"
EOC
is( scalar @rows, 2, ' readline, list context' );
ok( close($f), ' close' );
}
-
SKIP: {
skip "Output for |- doesn't go to shell on MacOS", 5 if $Is_MacOS;
unlink("afile");
}
-SKIP: {
- skip "open -| busted and noisy on VMS", 3 if $Is_VMS;
-
+{
ok( open(local $f, '-|', <<EOC), 'open local $f, "-|", ...' );
$Perl -e "print qq(a row\\n); print qq(another row\\n)"
EOC
}
# used to try to open a file [perl #17830]
- ok( open(my $stdin, "<&", fileno STDIN), 'dup fileno(STDIN) into lexical fh');
+ ok( open(my $stdin, "<&", fileno STDIN), 'dup fileno(STDIN) into lexical fh') or _diag $!;
}
SKIP: {
'sub f { open(my $fh, "xxx"); $fh = "f"; } f; f;print "ok"',
'ok', { stderr => 1 },
'#29102: Crash on assignment to lexical filehandle');
+
+# [perl #31767] Using $1 as a filehandle via open $1, "file" doesn't raise
+# an exception
+
+eval { open $99, "foo" };
+like($@, qr/Modification of a read-only value attempted/, "readonly fh");