zlib.html
来自「perl教程」· HTML 代码 · 共 401 行 · 第 1/2 页
HTML
401 行
<?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>IO::Zlib - IO:: style interface to L<Compress::Zlib></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>IO::Zlib - IO:: style interface to L<Compress::Zlib></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="#constructor">CONSTRUCTOR</a></li>
<li><a href="#object_methods">OBJECT METHODS</a></li>
<li><a href="#using_the_external_gzip">USING THE EXTERNAL GZIP</a></li>
<li><a href="#class_methods">CLASS METHODS</a></li>
<li><a href="#diagnostics">DIAGNOSTICS</a></li>
<li><a href="#see_also">SEE ALSO</a></li>
<li><a href="#history">HISTORY</a></li>
<li><a href="#copyright">COPYRIGHT</a></li>
</ul>
<!-- INDEX END -->
<hr />
<p>
</p>
<h1><a name="name">NAME</a></h1>
<p>IO::Zlib - IO:: style interface to <a href="../../lib/Compress/Zlib.html">the Compress::Zlib manpage</a></p>
<p>
</p>
<hr />
<h1><a name="synopsis">SYNOPSIS</a></h1>
<p>With any version of Perl 5 you can use the basic OO interface:</p>
<pre>
<span class="keyword">use</span> <span class="variable">IO::Zlib</span><span class="operator">;</span>
</pre>
<pre>
<span class="variable">$fh</span> <span class="operator">=</span> <span class="variable">new</span> <span class="variable">IO::Zlib</span><span class="operator">;</span>
<span class="keyword">if</span> <span class="operator">(</span><span class="variable">$fh</span><span class="operator">-></span><span class="keyword">open</span><span class="operator">(</span><span class="string">"file.gz"</span><span class="operator">,</span> <span class="string">"rb"</span><span class="operator">))</span> <span class="operator">{</span>
<span class="keyword">print</span> <span class="operator"><</span><span class="variable">$fh</span><span class="operator">>;</span>
<span class="variable">$fh</span><span class="operator">-></span><span class="keyword">close</span><span class="operator">;</span>
<span class="operator">}</span>
</pre>
<pre>
<span class="variable">$fh</span> <span class="operator">=</span> <span class="variable">IO::Zlib</span><span class="operator">-></span><span class="variable">new</span><span class="operator">(</span><span class="string">"file.gz"</span><span class="operator">,</span> <span class="string">"wb9"</span><span class="operator">);</span>
<span class="keyword">if</span> <span class="operator">(</span><span class="keyword">defined</span> <span class="variable">$fh</span><span class="operator">)</span> <span class="operator">{</span>
<span class="keyword">print</span> <span class="variable">$fh</span> <span class="string">"bar\n"</span><span class="operator">;</span>
<span class="variable">$fh</span><span class="operator">-></span><span class="keyword">close</span><span class="operator">;</span>
<span class="operator">}</span>
</pre>
<pre>
<span class="variable">$fh</span> <span class="operator">=</span> <span class="variable">IO::Zlib</span><span class="operator">-></span><span class="variable">new</span><span class="operator">(</span><span class="string">"file.gz"</span><span class="operator">,</span> <span class="string">"rb"</span><span class="operator">);</span>
<span class="keyword">if</span> <span class="operator">(</span><span class="keyword">defined</span> <span class="variable">$fh</span><span class="operator">)</span> <span class="operator">{</span>
<span class="keyword">print</span> <span class="operator"><</span><span class="variable">$fh</span><span class="operator">>;</span>
<span class="keyword">undef</span> <span class="variable">$fh</span><span class="operator">;</span> <span class="comment"># automatically closes the file</span>
<span class="operator">}</span>
</pre>
<p>With Perl 5.004 you can also use the TIEHANDLE interface to access
compressed files just like ordinary files:</p>
<pre>
<span class="keyword">use</span> <span class="variable">IO::Zlib</span><span class="operator">;</span>
</pre>
<pre>
<span class="keyword">tie</span> <span class="variable">*FILE</span><span class="operator">,</span> <span class="string">'IO::Zlib'</span><span class="operator">,</span> <span class="string">"file.gz"</span><span class="operator">,</span> <span class="string">"wb"</span><span class="operator">;</span>
<span class="keyword">print</span> <span class="variable">FILE</span> <span class="string">"line 1\nline2\n"</span><span class="operator">;</span>
</pre>
<pre>
<span class="keyword">tie</span> <span class="variable">*FILE</span><span class="operator">,</span> <span class="string">'IO::Zlib'</span><span class="operator">,</span> <span class="string">"file.gz"</span><span class="operator">,</span> <span class="string">"rb"</span><span class="operator">;</span>
<span class="keyword">while</span> <span class="operator">(<</span><span class="variable">FILE</span><span class="operator">>)</span> <span class="operator">{</span> <span class="keyword">print</span> <span class="string">"LINE: "</span><span class="operator">,</span> <span class="variable">$_</span> <span class="operator">};</span>
</pre>
<p>
</p>
<hr />
<h1><a name="description">DESCRIPTION</a></h1>
<p><code>IO::Zlib</code> provides an IO:: style interface to <a href="../../lib/Compress/Zlib.html">the Compress::Zlib manpage</a> and
hence to gzip/zlib compressed files. It provides many of the same methods
as the <a href="../../lib/IO/Handle.html">the IO::Handle manpage</a> interface.</p>
<p>Starting from IO::Zlib version 1.02, IO::Zlib can also use an
external <em>gzip</em> command. The default behaviour is to try to use
an external <em>gzip</em> if no <code>Compress::Zlib</code> can be loaded, unless
explicitly disabled by</p>
<pre>
<span class="keyword">use</span> <span class="variable">IO::Zlib</span> <span class="string">qw(:gzip_external 0)</span><span class="operator">;</span>
</pre>
<p>If explicitly enabled by</p>
<pre>
<span class="keyword">use</span> <span class="variable">IO::Zlib</span> <span class="string">qw(:gzip_external 1)</span><span class="operator">;</span>
</pre>
<p>then the external <em>gzip</em> is used <strong>instead</strong> of <code>Compress::Zlib</code>.</p>
<p>
</p>
<hr />
<h1><a name="constructor">CONSTRUCTOR</a></h1>
<dl>
<dt><strong><a name="item_new">new ( [ARGS] )</a></strong>
<dd>
<p>Creates an <code>IO::Zlib</code> object. If it receives any parameters, they are
passed to the method <a href="#item_open"><code>open</code></a>; if the open fails, the object is destroyed.
Otherwise, it is returned to the caller.</p>
</dd>
</li>
</dl>
<p>
</p>
<hr />
<h1><a name="object_methods">OBJECT METHODS</a></h1>
<dl>
<dt><strong><a name="item_open">open ( FILENAME, MODE )</a></strong>
<dd>
<p><a href="#item_open"><code>open</code></a> takes two arguments. The first is the name of the file to open
and the second is the open mode. The mode can be anything acceptable to
<a href="../../lib/Compress/Zlib.html">the Compress::Zlib manpage</a> and by extension anything acceptable to <em>zlib</em> (that
basically means POSIX <code>fopen()</code> style mode strings plus an optional number
to indicate the compression level).</p>
</dd>
</li>
<dt><strong><a name="item_opened">opened</a></strong>
<dd>
<p>Returns true if the object currently refers to a opened file.</p>
</dd>
</li>
<dt><strong><a name="item_close">close</a></strong>
<dd>
<p>Close the file associated with the object and disassociate
the file from the handle.
Done automatically on destroy.</p>
</dd>
</li>
<dt><strong><a name="item_getc">getc</a></strong>
<dd>
<p>Return the next character from the file, or undef if none remain.</p>
</dd>
</li>
<dt><strong><a name="item_getline">getline</a></strong>
<dd>
<p>Return the next line from the file, or undef on end of string.
Can safely be called in an array context.
Currently ignores $/ ($INPUT_RECORD_SEPARATOR or $RS when <a href="../../lib/English.html">the English manpage</a>
is in use) and treats lines as delimited by "\n".</p>
</dd>
</li>
<dt><strong><a name="item_getlines">getlines</a></strong>
<dd>
<p>Get all remaining lines from the file.
It will <code>croak()</code> if accidentally called in a scalar context.</p>
</dd>
</li>
<dt><strong><a name="item_print">print ( ARGS... )</a></strong>
<dd>
<p>Print ARGS to the file.</p>
</dd>
</li>
<dt><strong><a name="item_read">read ( BUF, NBYTES, [OFFSET] )</a></strong>
<dd>
<p>Read some bytes from the file.
Returns the number of bytes actually read, 0 on end-of-file, undef on error.</p>
</dd>
</li>
<dt><strong><a name="item_eof">eof</a></strong>
<dd>
<p>Returns true if the handle is currently positioned at end of file?</p>
</dd>
</li>
<dt><strong><a name="item_seek">seek ( OFFSET, WHENCE )</a></strong>
<dd>
<p>Seek to a given position in the stream.
Not yet supported.</p>
</dd>
</li>
<dt><strong><a name="item_tell">tell</a></strong>
<dd>
<p>Return the current position in the stream, as a numeric offset.
Not yet supported.</p>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?