56
56
<li><a href="http://search.cpan.org">CPAN</a></li>
57
<li><a href="http://www.perl.org">Perl.org</a></li>
57
58
<li><a href="http://www.perl.com">Perl.com</a></li>
58
<li><a href="http://www.perl.org">Perl.org</a></li>
59
<li><a href="http://perlbuzz.com">Perl Buzz</a></li>
60
<li><a href="http://www.perlfoundation.org/perl5/index.cgi">Perl 5 Wiki</a></li>
61
<li><a href="http://jobs.perl.org">Perl Jobs</a></li>
59
62
<li><a href="http://www.pm.org">Perl Mongers</a></li>
60
63
<li><a href="http://www.perlmonks.org">Perl Monks</a></li>
61
64
<li><a href="http://planet.perl.org">Planet Perl</a></li>
66
69
<li>Site maintained by<br><a href="http://perl.jonallen.info">Jon Allen</a>
67
70
(<a href="http://perl.jonallen.info">JJ</a>)</li>
68
<li class="spaced">Last updated on<br>23 April 2006</li>
71
<li class="spaced">Last updated on<br>23 December 2007</li>
69
72
<li class="spaced">See the <a href="http://perl.jonallen.info/projects/perldoc">project page</a> for
76
79
<div id="centerContent">
77
80
<div id="contentHeader">
78
81
<div id="contentHeaderLeft"><a href="#" onClick="showLeft()">Show navigation</a></div>
79
<div id="contentHeaderCentre">-- Perl 5.8.8 documentation --</div>
82
<div id="contentHeaderCentre">-- Perl 5.10.0 documentation --</div>
80
83
<div id="contentHeaderRight"><a href="#" onClick="showRight()">Show toolbar</a></div>
82
85
<div id="breadCrumbs"><a href="index.html">Home</a> > <a href="index-tutorials.html">Tutorials</a> > perlbot</div>
163
166
<a class="l_k" href="functions/bless.html">bless</a> <span class="i">$self</span><span class="cm">,</span> <span class="i">$type</span><span class="sc">;</span>
164
167
<span class="s">}</span></pre>
165
168
<pre class="verbatim"><a name="package-main"></a> package <span class="i">main</span><span class="sc">;</span></pre>
166
<pre class="verbatim"> <span class="i">$a</span> = Foo->new<span class="s">(</span> <span class="q">'High'</span> <span class="cm">=></span> <span class="n">42</span><span class="cm">,</span> <span class="q">'Low'</span> <span class="cm">=></span> <span class="n">11</span> <span class="s">)</span><span class="sc">;</span>
169
<pre class="verbatim"> <span class="i">$a</span> = <span class="w">Foo</span><span class="w">->new</span><span class="s">(</span> <span class="q">'High'</span> <span class="cm">=></span> <span class="n">42</span><span class="cm">,</span> <span class="q">'Low'</span> <span class="cm">=></span> <span class="n">11</span> <span class="s">)</span><span class="sc">;</span>
167
170
<a class="l_k" href="functions/print.html">print</a> <span class="q">"High=$a->{'High'}\n"</span><span class="sc">;</span>
168
171
<a class="l_k" href="functions/print.html">print</a> <span class="q">"Low=$a->{'Low'}\n"</span><span class="sc">;</span></pre>
169
<pre class="verbatim"> <span class="i">$b</span> = Bar->new<span class="s">(</span> <span class="q">'Left'</span> <span class="cm">=></span> <span class="n">78</span><span class="cm">,</span> <span class="q">'Right'</span> <span class="cm">=></span> <span class="n">40</span> <span class="s">)</span><span class="sc">;</span>
172
<pre class="verbatim"> <span class="i">$b</span> = <span class="w">Bar</span><span class="w">->new</span><span class="s">(</span> <span class="q">'Left'</span> <span class="cm">=></span> <span class="n">78</span><span class="cm">,</span> <span class="q">'Right'</span> <span class="cm">=></span> <span class="n">40</span> <span class="s">)</span><span class="sc">;</span>
170
173
<a class="l_k" href="functions/print.html">print</a> <span class="q">"Left=$b->[0]\n"</span><span class="sc">;</span>
171
174
<a class="l_k" href="functions/print.html">print</a> <span class="q">"Right=$b->[1]\n"</span><span class="sc">;</span></pre>
172
175
<a name="SCALAR-INSTANCE-VARIABLES"></a><h1>SCALAR INSTANCE VARIABLES</h1>
179
182
<a class="l_k" href="functions/bless.html">bless</a> \<span class="i">$self</span><span class="cm">,</span> <span class="i">$type</span><span class="sc">;</span>
180
183
<span class="s">}</span></pre>
181
184
<pre class="verbatim"><a name="package-main"></a> package <span class="i">main</span><span class="sc">;</span></pre>
182
<pre class="verbatim"> <span class="i">$a</span> = Foo->new<span class="s">(</span> <span class="n">42</span> <span class="s">)</span><span class="sc">;</span>
185
<pre class="verbatim"> <span class="i">$a</span> = <span class="w">Foo</span><span class="w">->new</span><span class="s">(</span> <span class="n">42</span> <span class="s">)</span><span class="sc">;</span>
183
186
<a class="l_k" href="functions/print.html">print</a> <span class="q">"a=$$a\n"</span><span class="sc">;</span></pre>
184
187
<a name="INSTANCE-VARIABLE-INHERITANCE"></a><h1>INSTANCE VARIABLE INHERITANCE</h1>
185
188
<p>This example demonstrates how one might inherit instance variables from a
197
200
<span class="i">@ISA</span> = <span class="q">qw( Bar )</span><span class="sc">;</span></pre>
198
201
<pre class="verbatim"><a name="new"></a> sub <span class="m">new</span> <span class="s">{</span>
199
202
<a class="l_k" href="functions/my.html">my</a> <span class="i">$type</span> = <a class="l_k" href="functions/shift.html">shift</a><span class="sc">;</span>
200
<a class="l_k" href="functions/my.html">my</a> <span class="i">$self</span> = Bar->new<span class="sc">;</span>
203
<a class="l_k" href="functions/my.html">my</a> <span class="i">$self</span> = <span class="w">Bar</span><span class="w">->new</span><span class="sc">;</span>
201
204
<span class="i">$self</span>->{<span class="q">'biz'</span>} = <span class="n">11</span><span class="sc">;</span>
202
205
<a class="l_k" href="functions/bless.html">bless</a> <span class="i">$self</span><span class="cm">,</span> <span class="i">$type</span><span class="sc">;</span>
203
206
<span class="s">}</span></pre>
204
207
<pre class="verbatim"><a name="package-main"></a> package <span class="i">main</span><span class="sc">;</span></pre>
205
<pre class="verbatim"> <span class="i">$a</span> = Foo->new<span class="sc">;</span>
208
<pre class="verbatim"> <span class="i">$a</span> = <span class="w">Foo</span><span class="w">->new</span><span class="sc">;</span>
206
209
<a class="l_k" href="functions/print.html">print</a> <span class="q">"buz = "</span><span class="cm">,</span> <span class="i">$a</span>->{<span class="q">'buz'</span>}<span class="cm">,</span> <span class="q">"\n"</span><span class="sc">;</span>
207
210
<a class="l_k" href="functions/print.html">print</a> <span class="q">"biz = "</span><span class="cm">,</span> <span class="i">$a</span>->{<span class="q">'biz'</span>}<span class="cm">,</span> <span class="q">"\n"</span><span class="sc">;</span></pre>
208
211
<a name="OBJECT-RELATIONSHIPS"></a><h1>OBJECT RELATIONSHIPS</h1>
219
222
<pre class="verbatim"><a name="new"></a> sub <span class="m">new</span> <span class="s">{</span>
220
223
<a class="l_k" href="functions/my.html">my</a> <span class="i">$type</span> = <a class="l_k" href="functions/shift.html">shift</a><span class="sc">;</span>
221
224
<a class="l_k" href="functions/my.html">my</a> <span class="i">$self</span> = <span class="s">{</span><span class="s">}</span><span class="sc">;</span>
222
<span class="i">$self</span>->{<span class="q">'Bar'</span>} = Bar->new<span class="sc">;</span>
225
<span class="i">$self</span>->{<span class="q">'Bar'</span>} = <span class="w">Bar</span><span class="w">->new</span><span class="sc">;</span>
223
226
<span class="i">$self</span>->{<span class="q">'biz'</span>} = <span class="n">11</span><span class="sc">;</span>
224
227
<a class="l_k" href="functions/bless.html">bless</a> <span class="i">$self</span><span class="cm">,</span> <span class="i">$type</span><span class="sc">;</span>
225
228
<span class="s">}</span></pre>
226
229
<pre class="verbatim"><a name="package-main"></a> package <span class="i">main</span><span class="sc">;</span></pre>
227
<pre class="verbatim"> <span class="i">$a</span> = Foo->new<span class="sc">;</span>
230
<pre class="verbatim"> <span class="i">$a</span> = <span class="w">Foo</span><span class="w">->new</span><span class="sc">;</span>
228
231
<a class="l_k" href="functions/print.html">print</a> <span class="q">"buz = "</span><span class="cm">,</span> <span class="i">$a</span>->{<span class="q">'Bar'</span>}->{<span class="q">'buz'</span>}<span class="cm">,</span> <span class="q">"\n"</span><span class="sc">;</span>
229
232
<a class="l_k" href="functions/print.html">print</a> <span class="q">"biz = "</span><span class="cm">,</span> <span class="i">$a</span>->{<span class="q">'biz'</span>}<span class="cm">,</span> <span class="q">"\n"</span><span class="sc">;</span></pre>
230
233
<a name="OVERRIDING-SUPERCLASS-METHODS"></a><h1>OVERRIDING SUPERCLASS METHODS</h1>
258
261
<span class="i">$self</span><span class="i">->SUPER::google</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
259
262
<span class="s">}</span></pre>
260
263
<pre class="verbatim"><a name="package-main"></a> package <span class="i">main</span><span class="sc">;</span></pre>
261
<pre class="verbatim"> <span class="i">$foo</span> = Foo->new<span class="sc">;</span>
264
<pre class="verbatim"> <span class="i">$foo</span> = <span class="w">Foo</span><span class="w">->new</span><span class="sc">;</span>
262
265
<span class="i">$foo</span><span class="i">->mumble</span><span class="sc">;</span>
263
266
<span class="i">$foo</span><span class="i">->grr</span><span class="sc">;</span>
264
267
<span class="i">$foo</span><span class="i">->goo</span><span class="sc">;</span>
265
268
<span class="i">$foo</span><span class="i">->google</span><span class="sc">;</span></pre>
266
<p>Note that <code class="inline">SUPER</code>
269
<p>Note that <code class="inline"><span class="w">SUPER</span></code>
267
270
refers to the superclasses of the current package
268
(<code class="inline">Foo</code>
271
(<code class="inline"><span class="w">Foo</span></code>
269
272
), not to the superclasses of <code class="inline"><span class="i">$self</span></code>
271
274
<a name="USING-RELATIONSHIP-WITH-SDBM"></a><h1>USING RELATIONSHIP WITH SDBM</h1>
272
275
<p>This example demonstrates an interface for the SDBM class. This creates a
273
276
"using" relationship between the SDBM class and the new class Mydbm.</p>
274
277
<pre class="verbatim"><a name="package-Mydbm"></a> package <span class="i">Mydbm</span><span class="sc">;</span></pre>
275
<pre class="verbatim"> <a class="l_k" href="functions/require.html">require</a> <a class="l_w" href="SDBM_File.html">SDBM_File</a><span class="sc">;</span>
276
<a class="l_k" href="functions/require.html">require</a> <a class="l_w" href="Tie/Hash.html">Tie::Hash</a><span class="sc">;</span>
278
<pre class="verbatim"> <a class="l_k" href="functions/require.html">require</a> <span class="w">SDBM_File</span><span class="sc">;</span>
279
<a class="l_k" href="functions/require.html">require</a> <span class="w">Tie::Hash</span><span class="sc">;</span>
277
280
<span class="i">@ISA</span> = <span class="q">qw( Tie::Hash )</span><span class="sc">;</span></pre>
278
281
<pre class="verbatim"><a name="TIEHASH"></a> sub <span class="m">TIEHASH</span> <span class="s">{</span>
279
282
<a class="l_k" href="functions/my.html">my</a> <span class="i">$type</span> = <a class="l_k" href="functions/shift.html">shift</a><span class="sc">;</span>
280
<a class="l_k" href="functions/my.html">my</a> <span class="i">$ref</span> = <a class="l_w" href="SDBM_File.html">SDBM_File</a>->new<span class="s">(</span><span class="i">@_</span><span class="s">)</span><span class="sc">;</span>
283
<a class="l_k" href="functions/my.html">my</a> <span class="i">$ref</span> = <span class="w">SDBM_File</span><span class="w">->new</span><span class="s">(</span><span class="i">@_</span><span class="s">)</span><span class="sc">;</span>
281
284
<a class="l_k" href="functions/bless.html">bless</a> <span class="s">{</span><span class="q">'dbm'</span> <span class="cm">=></span> <span class="i">$ref</span><span class="s">}</span><span class="cm">,</span> <span class="i">$type</span><span class="sc">;</span>
282
285
<span class="s">}</span>
283
286
<a name="FETCH"></a> sub <span class="m">FETCH</span> <span class="s">{</span>
295
298
<span class="s">}</span>
296
299
<span class="s">}</span></pre>
297
300
<pre class="verbatim"><a name="package-main"></a> package <span class="i">main</span><span class="sc">;</span>
298
<a class="l_k" href="functions/use.html">use</a> <a class="l_w" href="Fcntl.html">Fcntl</a> <span class="q">qw( O_RDWR O_CREAT )</span><span class="sc">;</span></pre>
299
<pre class="verbatim"> <a class="l_k" href="functions/tie.html">tie</a> <span class="i">%foo</span><span class="cm">,</span> <span class="q">"Mydbm"</span><span class="cm">,</span> <span class="q">"Sdbm"</span><span class="cm">,</span> O_RDWR|O_CREAT<span class="cm">,</span> <span class="n">0640</span><span class="sc">;</span>
301
<a class="l_k" href="functions/use.html">use</a> <span class="w">Fcntl</span> <span class="q">qw( O_RDWR O_CREAT )</span><span class="sc">;</span></pre>
302
<pre class="verbatim"> <a class="l_k" href="functions/tie.html">tie</a> <span class="i">%foo</span><span class="cm">,</span> <span class="q">"Mydbm"</span><span class="cm">,</span> <span class="q">"Sdbm"</span><span class="cm">,</span> <span class="w">O_RDWR</span>|<span class="w">O_CREAT</span><span class="cm">,</span> <span class="n">0640</span><span class="sc">;</span>
300
303
<span class="i">$foo</span>{<span class="q">'bar'</span>} = <span class="n">123</span><span class="sc">;</span>
301
304
<a class="l_k" href="functions/print.html">print</a> <span class="q">"foo-bar = $foo{'bar'}\n"</span><span class="sc">;</span></pre>
302
<pre class="verbatim"> <a class="l_k" href="functions/tie.html">tie</a> <span class="i">%bar</span><span class="cm">,</span> <span class="q">"Mydbm"</span><span class="cm">,</span> <span class="q">"Sdbm2"</span><span class="cm">,</span> O_RDWR|O_CREAT<span class="cm">,</span> <span class="n">0640</span><span class="sc">;</span>
305
<pre class="verbatim"> <a class="l_k" href="functions/tie.html">tie</a> <span class="i">%bar</span><span class="cm">,</span> <span class="q">"Mydbm"</span><span class="cm">,</span> <span class="q">"Sdbm2"</span><span class="cm">,</span> <span class="w">O_RDWR</span>|<span class="w">O_CREAT</span><span class="cm">,</span> <span class="n">0640</span><span class="sc">;</span>
303
306
<span class="i">$bar</span>{<span class="q">'Cathy'</span>} = <span class="n">456</span><span class="sc">;</span>
304
307
<a class="l_k" href="functions/print.html">print</a> <span class="q">"bar-Cathy = $bar{'Cathy'}\n"</span><span class="sc">;</span></pre>
305
308
<a name="THINKING-OF-CODE-REUSE"></a><h1>THINKING OF CODE REUSE</h1>
323
326
<a class="l_k" href="functions/print.html">print</a> <span class="q">"in BAZ\n"</span><span class="sc">;</span>
324
327
<span class="s">}</span></pre>
325
328
<pre class="verbatim"><a name="package-main"></a> package <span class="i">main</span><span class="sc">;</span></pre>
326
<pre class="verbatim"> <span class="i">$a</span> = FOO->new<span class="sc">;</span>
329
<pre class="verbatim"> <span class="i">$a</span> = <span class="w">FOO</span><span class="w">->new</span><span class="sc">;</span>
327
330
<span class="i">$a</span><span class="i">->bar</span><span class="sc">;</span></pre>
328
331
<p>Now we try to override the BAZ() method. We would like FOO::bar() to call
329
332
GOOP::BAZ(), but this cannot happen because FOO::bar() explicitly calls
351
354
<a class="l_k" href="functions/print.html">print</a> <span class="q">"in GOOP::BAZ\n"</span><span class="sc">;</span>
352
355
<span class="s">}</span></pre>
353
356
<pre class="verbatim"><a name="package-main"></a> package <span class="i">main</span><span class="sc">;</span></pre>
354
<pre class="verbatim"> <span class="i">$a</span> = GOOP->new<span class="sc">;</span>
357
<pre class="verbatim"> <span class="i">$a</span> = <span class="w">GOOP</span><span class="w">->new</span><span class="sc">;</span>
355
358
<span class="i">$a</span><span class="i">->bar</span><span class="sc">;</span></pre>
356
359
<p>To create reusable code we must modify class FOO, flattening class
357
360
FOO::private. The next example shows a reusable class FOO which allows the
378
381
<a class="l_k" href="functions/print.html">print</a> <span class="q">"in GOOP::BAZ\n"</span><span class="sc">;</span>
379
382
<span class="s">}</span></pre>
380
383
<pre class="verbatim"><a name="package-main"></a> package <span class="i">main</span><span class="sc">;</span></pre>
381
<pre class="verbatim"> <span class="i">$a</span> = GOOP->new<span class="sc">;</span>
384
<pre class="verbatim"> <span class="i">$a</span> = <span class="w">GOOP</span><span class="w">->new</span><span class="sc">;</span>
382
385
<span class="i">$a</span><span class="i">->bar</span><span class="sc">;</span></pre>
383
386
<a name="CLASS-CONTEXT-AND-THE-OBJECT"></a><h1>CLASS CONTEXT AND THE OBJECT</h1>
384
387
<p>Use the object to solve package and class context problems. Everything a
414
417
<pre class="verbatim"> <span class="i">%fizzle</span> = <span class="s">(</span> <span class="q">'Password'</span> <span class="cm">=></span> <span class="q">'Rumple'</span> <span class="s">)</span><span class="sc">;</span></pre>
415
418
<pre class="verbatim"><a name="new"></a> sub <span class="m">new</span> <span class="s">{</span>
416
419
<a class="l_k" href="functions/my.html">my</a> <span class="i">$type</span> = <a class="l_k" href="functions/shift.html">shift</a><span class="sc">;</span>
417
<a class="l_k" href="functions/my.html">my</a> <span class="i">$self</span> = Bar->new<span class="sc">;</span>
420
<a class="l_k" href="functions/my.html">my</a> <span class="i">$self</span> = <span class="w">Bar</span><span class="w">->new</span><span class="sc">;</span>
418
421
<span class="i">$self</span>->{<span class="q">'fizzle'</span>} = \<span class="i">%fizzle</span><span class="sc">;</span>
419
422
<a class="l_k" href="functions/bless.html">bless</a> <span class="i">$self</span><span class="cm">,</span> <span class="i">$type</span><span class="sc">;</span>
420
423
<span class="s">}</span></pre>
421
424
<pre class="verbatim"><a name="package-main"></a> package <span class="i">main</span><span class="sc">;</span></pre>
422
<pre class="verbatim"> <span class="i">$a</span> = Bar->new<span class="sc">;</span>
423
<span class="i">$b</span> = Foo->new<span class="sc">;</span>
425
<pre class="verbatim"> <span class="i">$a</span> = <span class="w">Bar</span><span class="w">->new</span><span class="sc">;</span>
426
<span class="i">$b</span> = <span class="w">Foo</span><span class="w">->new</span><span class="sc">;</span>
424
427
<span class="i">$a</span><span class="i">->enter</span><span class="sc">;</span>
425
428
<span class="i">$b</span><span class="i">->enter</span><span class="sc">;</span></pre>
426
429
<a name="INHERITING-A-CONSTRUCTOR"></a><h1>INHERITING A CONSTRUCTOR</h1>
442
445
<a class="l_k" href="functions/print.html">print</a> <span class="q">"in BAR::baz()\n"</span><span class="sc">;</span>
443
446
<span class="s">}</span></pre>
444
447
<pre class="verbatim"><a name="package-main"></a> package <span class="i">main</span><span class="sc">;</span></pre>
445
<pre class="verbatim"> <span class="i">$a</span> = BAR->new<span class="sc">;</span>
448
<pre class="verbatim"> <span class="i">$a</span> = <span class="w">BAR</span><span class="w">->new</span><span class="sc">;</span>
446
449
<span class="i">$a</span><span class="i">->baz</span><span class="sc">;</span></pre>
447
450
<a name="DELEGATION"></a><h1>DELEGATION</h1>
448
451
<p>Some classes, such as SDBM_File, cannot be effectively subclassed because
454
457
exactly like an SDBM_File object. The Mydbm class could now extend the
455
458
behavior by adding custom FETCH() and STORE() methods, if this is desired.</p>
456
459
<pre class="verbatim"><a name="package-Mydbm"></a> package <span class="i">Mydbm</span><span class="sc">;</span></pre>
457
<pre class="verbatim"> <a class="l_k" href="functions/require.html">require</a> <a class="l_w" href="SDBM_File.html">SDBM_File</a><span class="sc">;</span>
458
<a class="l_k" href="functions/require.html">require</a> <a class="l_w" href="Tie/Hash.html">Tie::Hash</a><span class="sc">;</span>
460
<pre class="verbatim"> <a class="l_k" href="functions/require.html">require</a> <span class="w">SDBM_File</span><span class="sc">;</span>
461
<a class="l_k" href="functions/require.html">require</a> <span class="w">Tie::Hash</span><span class="sc">;</span>
459
462
<span class="i">@ISA</span> = <span class="q">qw(Tie::Hash)</span><span class="sc">;</span></pre>
460
463
<pre class="verbatim"><a name="TIEHASH"></a> sub <span class="m">TIEHASH</span> <span class="s">{</span>
461
464
<a class="l_k" href="functions/my.html">my</a> <span class="i">$type</span> = <a class="l_k" href="functions/shift.html">shift</a><span class="sc">;</span>
462
<a class="l_k" href="functions/my.html">my</a> <span class="i">$ref</span> = <a class="l_w" href="SDBM_File.html">SDBM_File</a>->new<span class="s">(</span><span class="i">@_</span><span class="s">)</span><span class="sc">;</span>
465
<a class="l_k" href="functions/my.html">my</a> <span class="i">$ref</span> = <span class="w">SDBM_File</span><span class="w">->new</span><span class="s">(</span><span class="i">@_</span><span class="s">)</span><span class="sc">;</span>
463
466
<a class="l_k" href="functions/bless.html">bless</a> <span class="s">{</span><span class="q">'delegate'</span> <span class="cm">=></span> <span class="i">$ref</span><span class="s">}</span><span class="sc">;</span>
464
467
<span class="s">}</span></pre>
465
468
<pre class="verbatim"> sub AUTOLOAD {
472
475
<pre class="verbatim"> # Pass the message to the delegate.
473
476
$self->{'delegate'}->$AUTOLOAD(@_);
474
477
}</pre><pre class="verbatim"><a name="package-main"></a> package <span class="i">main</span><span class="sc">;</span>
475
<a class="l_k" href="functions/use.html">use</a> <a class="l_w" href="Fcntl.html">Fcntl</a> <span class="q">qw( O_RDWR O_CREAT )</span><span class="sc">;</span></pre>
476
<pre class="verbatim"> <a class="l_k" href="functions/tie.html">tie</a> <span class="i">%foo</span><span class="cm">,</span> <span class="q">"Mydbm"</span><span class="cm">,</span> <span class="q">"adbm"</span><span class="cm">,</span> O_RDWR|O_CREAT<span class="cm">,</span> <span class="n">0640</span><span class="sc">;</span>
478
<a class="l_k" href="functions/use.html">use</a> <span class="w">Fcntl</span> <span class="q">qw( O_RDWR O_CREAT )</span><span class="sc">;</span></pre>
479
<pre class="verbatim"> <a class="l_k" href="functions/tie.html">tie</a> <span class="i">%foo</span><span class="cm">,</span> <span class="q">"Mydbm"</span><span class="cm">,</span> <span class="q">"adbm"</span><span class="cm">,</span> <span class="w">O_RDWR</span>|<span class="w">O_CREAT</span><span class="cm">,</span> <span class="n">0640</span><span class="sc">;</span>
477
480
<span class="i">$foo</span>{<span class="q">'bar'</span>} = <span class="n">123</span><span class="sc">;</span>
478
481
<a class="l_k" href="functions/print.html">print</a> <span class="q">"foo-bar = $foo{'bar'}\n"</span><span class="sc">;</span></pre>
479
482
<a name="SEE-ALSO"></a><h1>SEE ALSO</h1>