Thread Auflösung mehrdeutiger Methodenaufrufe
(9 answers)
Opened by Spieler at 2007-11-27 15:24
Hallo,
Im folgenden Beispiel, wird der Mehrdeutige Ausdruck A::B->new( test => 1 ) evaluiert als A::B()->new( test => 1 ) oder 'A::B'->new( test => 1 ) abhängig davon, ob A geladen wird mit use A; oder mit require A; (hierbei könnte A::B auch in einem separaten file stehen) Würdet ihr das erwarten? Ist der Workaround return 'A::B' unless (@_); in sub A::B ein ausreichender Fix (wenn man als Verhalten 'A::B'->new( test => 1 ) erwartet)? Grüße, Christoph Code: (dl
)
1 #!/usr/bin/perl Output: A::B called with args <> A::B::new called with args: <A::B> A::B::new called with args: <A::B=HASH(0x225314) test 1> Attempt to bless into a reference at A.pm line 18. Bzw.: A::B::new called with args: <A::B test 1> $VAR1 = bless( { 'test' => 1 }, 'A::B' ); |