Re: [MacPerl-Porters] [PROPOSED PATCHES] lib.pm/lib.t
[email protected] (Chris Nandor) Fri, 31 May 2002 14:08:56 -0400
| Newsgroups | perl.macperl.porters |
|---|---|
| Message-ID | <p0510030eb91d6b9cf60e@[10.0.1.177]> |
At 17:50 +0300 2002.05.31, Jarkko Hietaniemi wrote:
>> - # Yes, %INC uses Unixy filepaths.
>> - is( $INC{'Yup.pm'}, join("/",$Lib_Dir, 'Yup.pm'), '%INC set
>> properly' );
>> + is( $INC{'Yup.pm'}, File::Spec->catfile( $Lib_Dir, 'Yup.pm'),
>> '%INC set properly' );
>
>I don't we can break this documented feature (like, ever). Instead,
>could the (internal) %INC and @INC handling in MacOS Classic be hacked
>to always talk UNIX?
I don't know. Many people do things like open FOO, $INC{'Yup.pm'}, and
changing to the documtented behavior -- where is that documented? -- will
completely break any usage of %INC by Perl programs. They will all need to
run paths through nativize first, and what about the cases where the path
is absolute? How would "Macintosh HD:Applications (Mac OS 9):MacPerl
Â:lib:Carp.pm" be turned into a usable Unix-y path, that could then be used
again on Mac OS?
From perlvar:
>The hash %INC contains entries for each filename included via the do,
>require, or use operators. The key is the filename you specified (with
>module names converted to pathnames), and the value is the location of
>the file found. The require operator uses this hash to determine
>whether a particular file has already been included.
It seems to me the path should be the actual location, which means, for Mac
OS, Mac-specific.
--
Chris Nandor [email protected] http://pudge.net/
Open Source Development Network [email protected] http://osdn.com/