perldbmfilter.html

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

HTML
219
字号
<?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>perldbmfilter - Perl DBM Filters</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>perldbmfilter - Perl DBM Filters</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>
	<ul>

		<li><a href="#the_filter">The Filter</a></li>
		<li><a href="#an_example__the_null_termination_problem_">An Example - the NULL termination problem.</a></li>
		<li><a href="#another_example__key_is_a_c_int_">Another Example - Key is a C int.</a></li>
	</ul>

	<li><a href="#see_also">SEE ALSO</a></li>
	<li><a href="#author">AUTHOR</a></li>
</ul>
<!-- INDEX END -->

<hr />
<p>
</p>
<h1><a name="name">NAME</a></h1>
<p>perldbmfilter - Perl DBM Filters</p>
<p>
</p>
<hr />
<h1><a name="synopsis">SYNOPSIS</a></h1>
<pre>
    $db = tie %hash, 'DBM', ...</pre>
<pre>
    <span class="variable">$old_filter</span> <span class="operator">=</span> <span class="variable">$db</span><span class="operator">-&gt;</span><span class="variable">filter_store_key</span>  <span class="operator">(</span> <span class="keyword">sub</span><span class="variable"> </span><span class="operator">{</span> <span class="operator">...</span> <span class="operator">}</span> <span class="operator">);</span>
    <span class="variable">$old_filter</span> <span class="operator">=</span> <span class="variable">$db</span><span class="operator">-&gt;</span><span class="variable">filter_store_value</span><span class="operator">(</span> <span class="keyword">sub</span><span class="variable"> </span><span class="operator">{</span> <span class="operator">...</span> <span class="operator">}</span> <span class="operator">);</span>
    <span class="variable">$old_filter</span> <span class="operator">=</span> <span class="variable">$db</span><span class="operator">-&gt;</span><span class="variable">filter_fetch_key</span>  <span class="operator">(</span> <span class="keyword">sub</span><span class="variable"> </span><span class="operator">{</span> <span class="operator">...</span> <span class="operator">}</span> <span class="operator">);</span>
    <span class="variable">$old_filter</span> <span class="operator">=</span> <span class="variable">$db</span><span class="operator">-&gt;</span><span class="variable">filter_fetch_value</span><span class="operator">(</span> <span class="keyword">sub</span><span class="variable"> </span><span class="operator">{</span> <span class="operator">...</span> <span class="operator">}</span> <span class="operator">);</span>
</pre>
<p>
</p>
<hr />
<h1><a name="description">DESCRIPTION</a></h1>
<p>The four <code>filter_*</code> methods shown above are available in all the DBM
modules that ship with Perl, namely DB_File, GDBM_File, NDBM_File,
ODBM_File and SDBM_File.</p>
<p>Each of the methods work identically, and are used to install (or
uninstall) a single DBM Filter. The only difference between them is the
place that the filter is installed.</p>
<p>To summarise:</p>
<dl>
<dt><strong><a name="item_filter_store_key"><strong>filter_store_key</strong></a></strong>

<dd>
<p>If a filter has been installed with this method, it will be invoked
every time you write a key to a DBM database.</p>
</dd>
</li>
<dt><strong><a name="item_filter_store_value"><strong>filter_store_value</strong></a></strong>

<dd>
<p>If a filter has been installed with this method, it will be invoked
every time you write a value to a DBM database.</p>
</dd>
</li>
<dt><strong><a name="item_filter_fetch_key"><strong>filter_fetch_key</strong></a></strong>

<dd>
<p>If a filter has been installed with this method, it will be invoked
every time you read a key from a DBM database.</p>
</dd>
</li>
<dt><strong><a name="item_filter_fetch_value"><strong>filter_fetch_value</strong></a></strong>

<dd>
<p>If a filter has been installed with this method, it will be invoked
every time you read a value from a DBM database.</p>
</dd>
</li>
</dl>
<p>You can use any combination of the methods from none to all four.</p>
<p>All filter methods return the existing filter, if present, or <a href="../../lib/Pod/perlfunc.html#item_undef"><code>undef</code></a>
in not.</p>
<p>To delete a filter pass <a href="../../lib/Pod/perlfunc.html#item_undef"><code>undef</code></a> to it.</p>
<p>
</p>
<h2><a name="the_filter">The Filter</a></h2>
<p>When each filter is called by Perl, a local copy of <a href="../../lib/Pod/perlvar.html#item___"><code>$_</code></a> will contain
the key or value to be filtered. Filtering is achieved by modifying
the contents of <a href="../../lib/Pod/perlvar.html#item___"><code>$_</code></a>. The return code from the filter is ignored.</p>
<p>
</p>

⌨️ 快捷键说明

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