in reply to Re^2: Undefined Subroutine & Global symbol requires explicit package name
in thread Undefined Subroutine & Global symbol requires explicit package name

Perl is mostly case-sensitive. There is some ambiguity over case with regard to module names on case-insensitive file systems. For example, given the following module:

# this code is in Foo/Bar.pm package Foo::Bar; use parent qw/Exporter/; our @EXPORT = qw/baz/; sub baz { "Hello world"; } 1;

On a Windows system (Windows a uses case-insensitive but case-preserving file system) you could do this:

use 5.010; use strict; use foo::bar; say Foo::Bar::baz(); # says "Hello world"

And you could do this:

use 5.010; use strict; use Foo::Bar; say baz(); # says "Hello world"

But you couldn't do this:

use 5.010; use strict; use foo::bar; say baz(); # dies - undefined subroutine main::baz

And you couldn't do this:

use 5.010; use strict; use foo::bar; say foo::bar::baz(); # dies - undefined subroutine again