in reply to Capitalized subroutine names and packages

This really surprised me. I figured that main::Bar would be called and return "Foo". But then I thought that "Foo"->new() would be using "Foo" as a string reference, which isn't generally allowed with strict.

Obviously, there is something deeper here that I do not understand. Could someone please explain why use strict; doesn't complain?

Thanks.

  • Comment on Re: Capitalized subroutine names and packages

Replies are listed 'Best First'.
Re^2: Capitalized subroutine names and packages
by Aristotle (Chancellor) on Jan 06, 2003 at 00:24 UTC
    When you write Bar->new, the "Bar" is already a string. The package is resolved at runtime via the symbol table. It has to, if you think about it.

    Makeshifts last the longest.