use Config;

my $pathsep = ":";
if ($Config{osname} =~ /darwin/i) {$pathsep = "/"; }

Be aware that this is not the only pathing gotcha converting MacPerl
scripts to UNIX perl (like MacOS X). The others I'm aware of (and can
think of right now) are:

- Modules which return paths (File::Basename, FindBin, etc.) return
trailing path separators for directories ("volume:folder:" instead of
"volume:folder") under MacPerl 5.6.1.  This is different than UNIX perls
("/Volume/Folder") which always leave off the trailing path separator
(as did MacPerl 5.2.0). This is documented in the MacPerl changes docs.

- Sloppy concatenation of paths by UNIX folks tend to result in bad
paths on Mac. For example "/Volume/Folder1/" . "/Folder2" points to
"/Volume/Folder1/Folder2" on UNIX perl (the extra "//" is ignored). On
Mac "Volume:Folder1:" . ":Folder2" yields "Volume:Folder1::Folder2"
which actually points to "Volume:Folder2" because the "::" is the up-dir
spec on Mac (equivalent to "/../" on UNIX).

We wrote routines to handle these cases ourselves before we discovered
File::Spec, which does most of the dirty work for you.

Alex
--
Alex Harper                                     [EMAIL PROTECTED]
Configuration Manager                           [EMAIL PROTECTED]
"Use whatever you think of first" -- Larry Wall

> -----Original Message-----
> From: Bill Becker [mailto:[EMAIL PROTECTED]] 
> Sent: Wednesday, April 17, 2002 12:39 PM
> Cc: [EMAIL PROTECTED]
> Subject: Re: [MacPerl] MacOSX directory syntax
> 
> 
> What would be the best way to determine this programmatically ???
> 
> Bruce Van Allen wrote:
> > 
> > At 12:08 PM -0500 4/17/02, Tom Carr wrote:
> > >I wrote a simple perl script on macOS9.2 and want to move 
> to an OSX box.
> > >When I run it on the OSX box, my path syntax is not 
> working. Is the path
> > >syntax for OSX different than OS9?
> > >
> > >my $files_to_move = ':In'; #top level folder for search
> > >
> > >In this line, ":In" does not resolve. The "In" directory 
> is in the same
> > >directory as the perl script.
> > 
> > In OS X, Perl is uses the UNIX path separator, '/', instead 
> of Mac's ':'.
> > 
> > Also, paths are UNIX-style. If you use BBEdit, open the script or
> > file in question, and get the path from the toolbar button. That'll
> > give you an example to follow.
> >
> 
> 

Reply via email to