Re: [MacPerl-Porters] [PROPOSED PATCHES] lib.pm/lib.t
[email protected] (Jarkko Hietaniemi) Fri, 31 May 2002 21:11:22 +0300
| Newsgroups | perl.macperl.porters |
|---|---|
| Message-ID | <[email protected]> |
On Fri, May 31, 2002 at 02:08:56PM -0400, Chris Nandor wrote:
> 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.
How about non-Mac code that stuffs UNIXy paths to *INC?
> --
> Chris Nandor [email protected] http://pudge.net/
> Open Source Development Network [email protected] http://osdn.com/
--
$jhi++; # http://www.iki.fi/jhi/
# There is this special biologist word we use for 'stable'.
# It is 'dead'. -- Jack Cohen