This and other RFCs are available on the web at
  http://dev.perl.org/rfc/

=head1 TITLE

No overloading of f($arg) basing on ref($arg)

=head1 VERSION

  Maintainer: Ilya Zakharevich <[EMAIL PROTECTED]>
  Date: 15 Sep 2000
  Mailing List: [EMAIL PROTECTED]
  Number: 242
  Version: 1
  Status: Developing

=head1 ABSTRACT

This RFC proposes that the meaning of function calls and operators 
should not be subtly changed basing on whether the argument is a reference
or not.

=head1 DESCRIPTION

There are several proposals to switch the meaning of C<f($arg)> basing on
the whether $arg is an array reference or not.  For example, it is tempting
to allow C<$array[[2,3]]> denote the same as C<$array[2][3]>.

Unfortunately, this prohibits the usage of overloaded data in $arg.  For
example

  my $i23 = new Math::BigInt 23;
  print $array[$i23]

will not access C<$array[23]>, but C<$array[2][3]> if the internal
representation if $i23 is (blessed) C<[2,3]>.

Keeping in mind that overloaded objects can be made to behave as array
references even if they are not (see the key C<'@{}'> of overloading)
makes things yet more confusing.

=head1 MIGRATION ISSUES

None.

=head1 IMPLEMENTATION

None.

=head1 REFERENCES

None.

Reply via email to