diff options
-rw-r--r-- | op.c | 7 | ||||
-rw-r--r-- | pod/perlport.pod | 2 |
2 files changed, 6 insertions, 3 deletions
@@ -1135,7 +1135,8 @@ mod(OP *o, I32 type) if (type == OP_GREPSTART || type == OP_ENTERSUB || type == OP_REFGEN) break; yyerror(form("Can't modify %s in %s", - op_desc[o->op_type], + (o->op_type == OP_NULL && (o->op_flags & OPf_SPECIAL) + ? "do block" : op_desc[o->op_type]), type ? op_desc[type] : "local")); return o; @@ -1264,7 +1265,9 @@ mod(OP *o, I32 type) break; case OP_NULL: - if (!(o->op_flags & OPf_KIDS)) + if (o->op_flags & OPf_SPECIAL) /* do BLOCK */ + goto nomod; + else if (!(o->op_flags & OPf_KIDS)) break; if (o->op_targ != OP_LIST) { mod(cBINOPo->op_first, type); diff --git a/pod/perlport.pod b/pod/perlport.pod index 79ca76769f..0b9d054fc3 100644 --- a/pod/perlport.pod +++ b/pod/perlport.pod @@ -84,7 +84,7 @@ should be considered a perpetual work in progress =head2 Newlines -In most operating systems, lines in files are separated with newlines. +In most operating systems, lines in files are terminated by newlines. Just what is used as a newline may vary from OS to OS. Unix traditionally uses C<\012>, one kind of Windows I/O uses C<\015\012>, and S<Mac OS> uses C<\015>. |