Yes, as you can see from this demonstration code:
#!/usr/bin/perl -w use strict; my $list = ' FUD() => "()", "FUD" => "str", FUD => "bare", -FUD => "-", +FUD => + "+", '; sub FUD { 'fud' } for( 0 .. 1 ) { my @a = eval $list; print "@a\n"; last if $_; undef &FUD; eval 'sub FUD() { "dud" }'; } __END__ fud () FUD str FUD bare -FUD - FUD + dud () FUD str FUD bare -FUD - FUD +
While the FUD() case always calls the function (and thus gives 'fud' then 'dud') and the "FUD" case always doesn't call the function (and thus always gives 'FUD'), the other bareword cases are affected by whether or not a prototype is used and so give the follow inconsistent results:
FUD +FUD -FUD ----- ----- ------ w/ prototype: FUD FUD -FUD w/o prototype: FUD FUD -FUD
Happy debugging!
Like anybody could possibly debug such wily inconsistency! So funny.
Update: Sorry, I accidentally reversed the "w/" vs "w/o" labels in the above table. Sorry for the confusion that must have caused.
- tye
In reply to Re^3: Any differences between method and method()? (=>)
by tye
in thread Any differences between method and method()?
by sophate
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |