Ignore:
Timestamp:
Mar 26, 2007, 9:04:54 PM (17 years ago)
Author:
Nelson Elhage <nelhage@mit.edu>
Branches:
master, barnowl_perlaim, debian, release-1.10, release-1.4, release-1.5, release-1.6, release-1.7, release-1.8, release-1.9
Children:
4c2ec6c
Parents:
18a99d2
git-author:
Nelson Elhage <nelhage@mit.edu> (03/26/07 21:04:37)
git-committer:
Nelson Elhage <nelhage@mit.edu> (03/26/07 21:04:54)
Message:
Getting rid of indirect object syntax new calls. Quoting perlobj:

> But what if there are no arguments? In that case, Perl must guess what
> you want. Even worse, it must make that guess *at compile time*. Usually
> Perl gets it right, but when it doesn't you get a function call compiled
> as a method, or vice versa. This can introduce subtle bugs that are hard
> to detect.
> 
> For example, a call to a method "new" in indirect notation -- as C++
> programmers are wont to make -- can be miscompiled into a subroutine
> call if there's already a "new" function in scope. You'd end up calling
> the current package's "new" as a subroutine, rather than the desired
> class's method. The compiler tries to cheat by remembering bareword
> "require"s, but the grief when it messes up just isn't worth the years
> of debugging it will take you to track down such subtle bugs.
    
File:
1 edited

Legend:

Unmodified
Added
Removed
  • perl/lib/Net/Jabber/Dialback.pm

    r0ff8d110 rcb54527  
    3838  the XML::Stream hash.  For example:
    3939
    40     my $dialback = new Net::Jabber::Dialback(%hash);
     40    my $dialback = Net::Jabber::Dialback->new(%hash);
    4141
    4242  You now have access to all of the retrieval functions available.
     
    4646    use Net::Jabber qw(Server);
    4747
    48     $DB = new Net::Jabber::Dialback("verify");
    49     $DB = new Net::Jabber::Dialback("result");
     48    $DB = Net::Jabber::Dialback->new("verify");
     49    $DB = Net::Jabber::Dialback->new("result");
    5050
    5151  Please see the specific documentation for Net::Jabber::Dialback::Result
     
    9898        {
    9999            my ($temp) = @_;
    100             return new Net::Jabber::Dialback::Result()
     100            return Net::Jabber::Dialback::Result->new()
    101101                if ($temp eq "result");
    102             return new Net::Jabber::Dialback::Verify()
     102            return Net::Jabber::Dialback::Verify->new()
    103103                if ($temp eq "verify");
    104104
    105105            my @temp = @{$temp};
    106             return new Net::Jabber::Dialback::Result(@temp)
     106            return Net::Jabber::Dialback::Result->new(@temp)
    107107                if ($temp[0] eq "db:result");
    108             return new Net::Jabber::Dialback::Verify(@temp)
     108            return Net::Jabber::Dialback::Verify->new(@temp)
    109109                if ($temp[0] eq "db:verify");
    110110        }
Note: See TracChangeset for help on using the changeset viewer.