spec.html

来自「perl教程」· HTML 代码 · 共 443 行 · 第 1/2 页

HTML
443
字号
<?xml version="1.0" ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<!-- saved from url=(0017)http://localhost/ -->
<script language="JavaScript" src="../../displayToc.js"></script>
<script language="JavaScript" src="../../tocParas.js"></script>
<script language="JavaScript" src="../../tocTab.js"></script>
<link rel="stylesheet" type="text/css" href="../../scineplex.css">
<title>File::Spec - portably perform operations on file names</title>
<link rel="stylesheet" href="../../Active.css" type="text/css" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rev="made" href="mailto:" />
</head>

<body>

<script>writelinks('__top__',2);</script>
<h1><a>File::Spec - portably perform operations on file names</a></h1>
<p><a name="__index__"></a></p>

<!-- INDEX BEGIN -->

<ul>

	<li><a href="#name">NAME</a></li>
	<li><a href="#synopsis">SYNOPSIS</a></li>
	<li><a href="#description">DESCRIPTION</a></li>
	<li><a href="#methods">METHODS</a></li>
	<li><a href="#see_also">SEE ALSO</a></li>
	<li><a href="#author">AUTHOR</a></li>
	<li><a href="#copyright">COPYRIGHT</a></li>
</ul>
<!-- INDEX END -->

<hr />
<p>
</p>
<h1><a name="name">NAME</a></h1>
<p>File::Spec - portably perform operations on file names</p>
<p>
</p>
<hr />
<h1><a name="synopsis">SYNOPSIS</a></h1>
<pre>
        <span class="keyword">use</span> <span class="variable">File::Spec</span><span class="operator">;</span>
</pre>
<pre>
        <span class="variable">$x</span><span class="operator">=</span><span class="variable">File::Spec</span><span class="operator">-&gt;</span><span class="variable">catfile</span><span class="operator">(</span><span class="string">'a'</span><span class="operator">,</span> <span class="string">'b'</span><span class="operator">,</span> <span class="string">'c'</span><span class="operator">);</span>
</pre>
<p>which returns 'a/b/c' under Unix. Or:</p>
<pre>
        <span class="keyword">use</span> <span class="variable">File::Spec::Functions</span><span class="operator">;</span>
</pre>
<pre>
        <span class="variable">$x</span> <span class="operator">=</span> <span class="variable">catfile</span><span class="operator">(</span><span class="string">'a'</span><span class="operator">,</span> <span class="string">'b'</span><span class="operator">,</span> <span class="string">'c'</span><span class="operator">);</span>
</pre>
<p>
</p>
<hr />
<h1><a name="description">DESCRIPTION</a></h1>
<p>This module is designed to support operations commonly performed on file
specifications (usually called &quot;file names&quot;, but not to be confused with the
contents of a file, or Perl's file handles), such as concatenating several
directory and file names into a single path, or determining whether a path
is rooted. It is based on code directly taken from MakeMaker 5.17, code
written by Andreas K&ouml;nig, Andy Dougherty, Charles Bailey, Ilya
Zakharevich, Paul Schinder, and others.</p>
<p>Since these functions are different for most operating systems, each set of
OS specific routines is available in a separate module, including:</p>
<pre>
        File::Spec::Unix
        File::Spec::Mac
        File::Spec::OS2
        File::Spec::Win32
        File::Spec::VMS</pre>
<p>The module appropriate for the current OS is automatically loaded by
File::Spec. Since some modules (like VMS) make use of facilities available
only under that OS, it may not be possible to load all modules under all
operating systems.</p>
<p>Since File::Spec is object oriented, subroutines should not be called directly,
as in:</p>
<pre>
        <span class="variable">File::Spec::catfile</span><span class="operator">(</span><span class="string">'a'</span><span class="operator">,</span><span class="string">'b'</span><span class="operator">);</span>
</pre>
<p>but rather as class methods:</p>
<pre>
        <span class="variable">File::Spec</span><span class="operator">-&gt;</span><span class="variable">catfile</span><span class="operator">(</span><span class="string">'a'</span><span class="operator">,</span><span class="string">'b'</span><span class="operator">);</span>
</pre>
<p>For simple uses, <a href="../../lib/File/Spec/Functions.html">the File::Spec::Functions manpage</a> provides convenient functional
forms of these methods.</p>
<p>
</p>
<hr />
<h1><a name="methods">METHODS</a></h1>
<dl>
<dt><strong><a name="item_canonpath">canonpath</a></strong>

<dd>
<p>No physical check on the filesystem, but a logical cleanup of a
path.</p>
</dd>
<dd>
<pre>
    <span class="variable">$cpath</span> <span class="operator">=</span> <span class="variable">File::Spec</span><span class="operator">-&gt;</span><span class="variable">canonpath</span><span class="operator">(</span> <span class="variable">$path</span> <span class="operator">)</span> <span class="operator">;</span>
</pre>
</dd>
<dd>
<p>Note that this does *not* collapse <em>x/../y</em> sections into <em>y</em>.  This
is by design.  If <em>/foo</em> on your system is a symlink to <em>/bar/baz</em>,
then <em>/foo/../quux</em> is actually <em>/bar/quux</em>, not <em>/quux</em> as a naive
<em>../</em>-removal would give you.  If you want to do this kind of
processing, you probably want <code>Cwd</code>'s <code>realpath()</code> function to
actually traverse the filesystem cleaning up paths like this.</p>
</dd>
</li>
<dt><strong><a name="item_catdir">catdir</a></strong>

<dd>
<p>Concatenate two or more directory names to form a complete path ending
with a directory. But remove the trailing slash from the resulting
string, because it doesn't look good, isn't necessary and confuses
OS/2. Of course, if this is the root directory, don't cut off the
trailing slash :-)</p>
</dd>
<dd>
<pre>
    <span class="variable">$path</span> <span class="operator">=</span> <span class="variable">File::Spec</span><span class="operator">-&gt;</span><span class="variable">catdir</span><span class="operator">(</span> <span class="variable">@directories</span> <span class="operator">);</span>
</pre>
</dd>
</li>
<dt><strong><a name="item_catfile">catfile</a></strong>

<dd>
<p>Concatenate one or more directory names and a filename to form a
complete path ending with a filename</p>
</dd>
<dd>
<pre>
    <span class="variable">$path</span> <span class="operator">=</span> <span class="variable">File::Spec</span><span class="operator">-&gt;</span><span class="variable">catfile</span><span class="operator">(</span> <span class="variable">@directories</span><span class="operator">,</span> <span class="variable">$filename</span> <span class="operator">);</span>
</pre>
</dd>
</li>
<dt><strong><a name="item_curdir">curdir</a></strong>

<dd>
<p>Returns a string representation of the current directory.</p>
</dd>
<dd>
<pre>
    <span class="variable">$curdir</span> <span class="operator">=</span> <span class="variable">File::Spec</span><span class="operator">-&gt;</span><span class="variable">curdir</span><span class="operator">();</span>
</pre>
</dd>
</li>
<dt><strong><a name="item_devnull">devnull</a></strong>

<dd>
<p>Returns a string representation of the null device.</p>
</dd>
<dd>
<pre>
    <span class="variable">$devnull</span> <span class="operator">=</span> <span class="variable">File::Spec</span><span class="operator">-&gt;</span><span class="variable">devnull</span><span class="operator">();</span>
</pre>
</dd>
</li>
<dt><strong><a name="item_rootdir">rootdir</a></strong>

<dd>
<p>Returns a string representation of the root directory.</p>
</dd>
<dd>
<pre>
    <span class="variable">$rootdir</span> <span class="operator">=</span> <span class="variable">File::Spec</span><span class="operator">-&gt;</span><span class="variable">rootdir</span><span class="operator">();</span>
</pre>
</dd>
</li>
<dt><strong><a name="item_tmpdir">tmpdir</a></strong>

<dd>
<p>Returns a string representation of the first writable directory from a
list of possible temporary directories.  Returns the current directory
if no writable temporary directories are found.  The list of directories
checked depends on the platform; e.g. File::Spec::Unix checks <code>$ENV{TMPDIR}</code>
(unless taint is on) and <em>/tmp</em>.</p>
</dd>
<dd>
<pre>
    <span class="variable">$tmpdir</span> <span class="operator">=</span> <span class="variable">File::Spec</span><span class="operator">-&gt;</span><span class="variable">tmpdir</span><span class="operator">();</span>
</pre>
</dd>
</li>
<dt><strong><a name="item_updir">updir</a></strong>

<dd>
<p>Returns a string representation of the parent directory.</p>
</dd>
<dd>
<pre>
    <span class="variable">$updir</span> <span class="operator">=</span> <span class="variable">File::Spec</span><span class="operator">-&gt;</span><span class="variable">updir</span><span class="operator">();</span>
</pre>
</dd>
</li>
<dt><strong><a name="item_no_upwards">no_upwards</a></strong>

<dd>
<p>Given a list of file names, strip out those that refer to a parent
directory. (Does not strip symlinks, only '.', '..', and equivalents.)</p>
</dd>
<dd>
<pre>
    <span class="variable">@paths</span> <span class="operator">=</span> <span class="variable">File::Spec</span><span class="operator">-&gt;</span><span class="variable">no_upwards</span><span class="operator">(</span> <span class="variable">@paths</span> <span class="operator">);</span>
</pre>
</dd>
</li>
<dt><strong><a name="item_case_tolerant">case_tolerant</a></strong>

<dd>
<p>Returns a true or false value indicating, respectively, that alphabetic
case is not or is significant when comparing file specifications.</p>
</dd>
<dd>
<pre>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?