[EMAIL PROTECTED] wrote:
 Opcode names are not reserved words in PIR, and may be used as variable names.
 For example, you can define a local variable named C<print>.  [See RT #24251]
+Note that by using an opcode name as a local variable name, the variable will
+I<hide> the opcode name, effectively making the opcode unusable. Opcode names
+used as subroutine identifiers, on the other hand, will I<hide> that opcode.
-PIR keywords, on the other hand, I<are> reserved, and cannot be used as
+In contrast to opcode names, PIR keywords I<are> reserved, and cannot be used 
as
 identifiers. Some opcode names (C<if>, C<unless>) are, in fact, PIR keywords,
 which therefore cannot be used as identifiers.

This is another one of those muddy cases in PIR where words conflict when they shouldn't. I can't think of any way that it's actually useful to have a variable named 'add' prevent you from using the opcode 'add'. Call it a bug, or at least a misfeature caused by limited parsing.

Allison

Reply via email to