No such thing as a small change | |
PerlMonks |
Paths in Perlby tachyon (Chancellor) |
on Sep 04, 2001 at 17:43 UTC ( [id://110030]=perltutorial: print w/replies, xml ) | Need Help?? |
Different Operating Systems use different characters as their path separator when specifying directory and file paths: foo/bar/baz # *nix uses a / foo\bar\baz # Win32 uses a \ foo:bar:baz # Mac OS 9 uses a : foo/bar/baz # Mac OS X uses a / (usually!) In Perl you can generally just use a / as your path separator (except on Mac OS 9, thanks Hanamaki). Why? Because Perl will automagically convert the / to the correct path separator for the system it is running on! This means that coding Windows paths like this $path = "\\foo\\bar\\baz"; is not required. You can just use this: $path = "/foo/bar/baz"; and things will be fine. In fact using \\ can be problematic, but you probably already know that :-) If you want to display the expected system delimiter to a user (ie hide the fact that you are using / internally) you can just do something like this:
If you need to do lots of conversions just write a sub like this: So there you have it. Paths in Perl. By using a / you make it much easier to port your code to another system. For truly portable methods look into the File::Spec module (part of the standard distro) and perlman:perlport. Thanks to wog and Hanamaki for this suggestion. And if you have been converting / to \\ ....
Back to
Tutorials
|
|