X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pp.c;h=6730f29f0c2e084d0f437bdc91cbd4be48f13c96;hb=302d38aa06a9db991c3d8d4d4150b2d3e93e193b;hp=9d96b944f5eaae5dbcea3fef892fccd0b8d65235;hpb=6f894eade1cb03fcc18e4faa9e39f693bad68f34;p=p5sagit%2Fp5-mst-13.2.git diff --git a/pp.c b/pp.c index 9d96b94..6730f29 100644 --- a/pp.c +++ b/pp.c @@ -448,10 +448,12 @@ PP(pp_prototype) else if (n && str[0] == ';' && seen_question) goto set; /* XXXX system, exec */ if ((oa & (OA_OPTIONAL - 1)) >= OA_AVREF - && (oa & (OA_OPTIONAL - 1)) <= OA_HVREF) { + && (oa & (OA_OPTIONAL - 1)) <= OA_SCALARREF + /* But globs are already references (kinda) */ + && (oa & (OA_OPTIONAL - 1)) != OA_FILEREF + ) { str[n++] = '\\'; } - /* What to do with R ((un)tie, tied, (sys)read, recv)? */ str[n++] = ("?$@@%&*$")[oa & (OA_OPTIONAL - 1)]; oa = oa >> 4; }