use strict; use warnings; use Data::Dump qw/pp dd/; Class->new("method"); Class::new("function"); # sub UNIVERSAL::new { # warn "UNIVERSAL", pp \@_; # } package Class; use Data::Dump qw/pp dd/; sub AUTOLOAD { warn "AUTOLOAD", pp \@_; }
AUTOLOAD["Class", "method"] at d:/Users/lanx/AppData/Roaming/exp/new_a +utoload.pl line 23. AUTOLOAD["function"] at d:/Users/lanx/AppData/Roaming/exp/new_autoload +.pl line 23.
with UNIVERSAL::new() uncommented:
UNIVERSAL["Class", "method"] at d:/Users/lanx/AppData/Roaming/exp/new_ +autoload.pl line 14. AUTOLOAD["function"] at d:/Users/lanx/AppData/Roaming/exp/new_autoload +.pl line 23.
So a class which counts on catching ->new in AUTOLOAD would be sabotaged.
A normal function call wouldn't be effected by UNIVERSAL.
Cheers Rolf
(addicted to the Perl Programming Language :)
Wikisyntax for the Monastery
FootballPerl is like chess, only without the dice
In reply to Re^5: OO systems and Perl 5 (Was: Recap: Future of Perl 5)
by LanX
in thread OO systems and Perl 5 (Was: Recap: Future of Perl 5)
by RonW
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |