The File::Spec family of modules lets you construct paths using directories and filenames without hardcoding platform-specific directory separators. Supported systems include Unix, VMS, Mac, and Win32. These modules all offer a catfile class method that catenates together each path component using the specified platform's path separator. The File::Spec module returns different results depending on your current platform. The others return results specific to that platform. The File::Spec::Functions module provides a functional interface.use File::Spec; # OO style $path = File::Spec->catfile("subdir", "filename"); # 'subdir/filename' on Unix, OS2, or Mac OS X # 'subdir:filename' on (old) Apple Macs # 'subdir\filename' on Microsoft $path = File::Spec->catfile("", "dir1", "dir2", "filename"); # '/dir1/dir2/filename' on Unix, OS2, or Mac OS X # ':dir1:dir2:filename' on (old) Apple Macs # '\dir1\dir2\filename' on Microsoft use File::Spec::Unix; $path = File::Spec::Unix->catfile("subdir", "filename"); # 'subdir/filename' (even when executed on non-Unix systems) use File::Spec::Mac; $path = File::Spec::Mac->catfile("subdir", "filename"); # 'subdir:filename' use File::Spec::Win32; $path = File::Spec::Win32->catfile("subdir", "filename";) # 'subdir\filename' # Use functional interface instead. use File::Spec::Functions; $path = catfile("subdir", "filename");
Copyright © 2002 O'Reilly & Associates. All rights reserved.