Scroll to navigation

File::Spec::Native(3pm) User Contributed Perl Documentation File::Spec::Native(3pm)


File::Spec::Native - Use native OS implementation of File::Spec from a subclass


version 1.004


  # This serves little purpose on its own but can be useful in some situations
  # For example:
  use Path::Class 0.24;
  # convert foreign file type into native type
  # without having to know what the current OS is
  foreign_file(Win32 => $win32_path)->as_foreign("Native");
  # or to build a file-spec dynamically (possibly taking the type from input):
  my $type = get_requested_file_spec(); # can return "Native"
  foreign_file($type => $file_path);
  # having $type be "Native" is an alternative to having to do:
  my $file = $type ? foreign_file($type, $file_path) : file($file_path);


This module is a stupid hack to make the default File::Spec behavior available from a subclass. This can be useful when using another module that expects a subclass of File::Spec but you want to use the current, native OS format (automatically detected by File::Spec).

For example: "as_foreign" in Path::Class (as of version 0.24) allows you to translate a Path::Class object from one OS format to another. However, there is no way to specify that you want to translate the path into the current, native OS format without guessing at what that format is (which may include peeking into @File::Spec::ISA).

This module @ISA File::Spec.




You can find documentation for this module with the perldoc command.

  perldoc File::Spec::Native


The following websites have more information about this module, and may be of help to you. As always, in addition to those websites please use your favorite search engine to discover more resources.


A modern, open-source CPAN search engine, useful to view POD in HTML format.


Bugs / Feature Requests

Please report any bugs or feature requests by email to "bug-file-spec-native at", or through the web interface at <>. You will be automatically notified of any progress on the request by the system.

Source Code


  git clone


Randy Stauner <>


This software is copyright (c) 2011 by Randy Stauner.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

2022-12-09 perl v5.36.0