From: Dave Mitchell Date: Thu, 30 Sep 2004 20:51:31 +0000 (+0000) Subject: [perl #31767] open $1, "file" doesn't raise an exception X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=ac53db4c3f7e2209c2c3f33df2423b5511eedd24;p=p5sagit%2Fp5-mst-13.2.git [perl #31767] open $1, "file" doesn't raise an exception p4raw-id: //depot/perl@23342 --- diff --git a/pp.c b/pp.c index 772954e..94a278a 100644 --- a/pp.c +++ b/pp.c @@ -159,6 +159,8 @@ PP(pp_rv2gv) /* If this is a 'my' scalar and flag is set then vivify * NI-S 1999/05/07 */ + if (SvREADONLY(sv)) + Perl_croak(aTHX_ PL_no_modify); if (PL_op->op_private & OPpDEREF) { char *name; GV *gv; diff --git a/t/io/open.t b/t/io/open.t index 5e1b5ec..e12b447 100755 --- a/t/io/open.t +++ b/t/io/open.t @@ -12,7 +12,7 @@ use Config; $Is_VMS = $^O eq 'VMS'; $Is_MacOS = $^O eq 'MacOS'; -plan tests => 107; +plan tests => 108; my $Perl = which_perl(); @@ -315,3 +315,9 @@ fresh_perl_is( '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");