home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Magazin: Amiga-CD 1996 July
/
AMIGA_1996_7.BIN
/
ausgabe_7_96
/
pd-programmierung
/
perl5_002bin.lha
/
man
/
catp
/
perldsc.0
< prev
next >
Wrap
Text File
|
1996-03-02
|
93KB
|
1,123 lines
PERLDSC(1) User Contributed Perl Documentation PERLDSC(1)
NNNNAAAAMMMMEEEE
perldsc - Perl Data Structures Cookbook
DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
The single feature most sorely lacking in the Perl
programming language prior to its 5.0 release was complex
data structures. Even without direct language support,
some valiant programmers did manage to emulate them, but
it was hard work and not for the faint of heart. You
could occasionally get away with the $$$$mmmm{{{{$$$$LLLLooooLLLL,,,,$$$$bbbb}}}} notation
borrowed from _a_w_k in which the keys are actually more like
a single concatenated string """"$$$$LLLLooooLLLL$$$$bbbb"""", but traversal and
sorting were difficult. More desperate programmers even
hacked Perl's internal symbol table directly, a strategy
that proved hard to develop and maintain--to put it
mildly.
The 5.0 release of Perl let us have complex data
structures. You may now write something like this and all
of a sudden, you'd have a array with three dimensions!
ffffoooorrrr $$$$xxxx ((((1111 ........ 11110000)))) {{{{
ffffoooorrrr $$$$yyyy ((((1111 ........ 11110000)))) {{{{
ffffoooorrrr $$$$zzzz ((((1111 ........ 11110000)))) {{{{
$$$$LLLLooooLLLL[[[[$$$$xxxx]]]][[[[$$$$yyyy]]]][[[[$$$$zzzz]]]] ====
$$$$xxxx ******** $$$$yyyy ++++ $$$$zzzz;;;;
}}}}
}}}}
}}}}
Alas, however simple this may appear, underneath it's a
much more elaborate construct than meets the eye!
How do you print it out? Why can't you just say pppprrrriiiinnnntttt
@@@@LLLLooooLLLL? How do you sort it? How can you pass it to a
function or get one of these back from a function? Is is
an object? Can you save it to disk to read back later?
How do you access whole rows or columns of that matrix?
Do all the values have to be numeric?
As you see, it's quite easy to become confused. While
some small portion of the blame for this can be attributed
to the reference-based implementation, it's really more
due to a lack of existing documentation with examples
designed for the beginner.
This document is meant to be a detailed but understandable
treatment of the many different sorts of data structures
you might want to develop. It should also serve as a
cookbook of examples. That way, when you need to create
one of these complex data structures, you can just pinch,
pilfer, or purloin a drop-in example from here.
Let's look at each of these possible constructs in detail.
30/Jan/96 perl 5.002 with 1
PERLDSC(1) User Contributed Perl Documentation PERLDSC(1)
There are separate documents on each of the following:
+o arrays of arrays
+o hashes of arrays
+o arrays of hashes
+o hashes of hashes
+o more elaborate constructs
+o recursive and self-referential data structures
+o objects
But for now, let's look at some of the general issues
common to all of these types of data structures.
RRRREEEEFFFFEEEERRRREEEENNNNCCCCEEEESSSS
The most important thing to understand about all data
structures in Perl -- including multidimensional
arrays--is that even though they might appear otherwise,
Perl @@@@AAAARRRRRRRRAAAAYYYYs and %%%%HHHHAAAASSSSHHHHes are all internally one-
dimensional. They can only hold scalar values (meaning a
string, number, or a reference). They cannot directly
contain other arrays or hashes, but instead contain
_r_e_f_e_r_e_n_c_e_s to other arrays or hashes.
You can't use a reference to a array or hash in quite the
same way that you would a real array or hash. For C or
C++ programmers unused to distinguishing between arrays
and pointers to the same, this can be confusing. If so,
just think of it as the difference between a structure and
a pointer to a structure.
You can (and should) read more about references in the
_p_e_r_l_r_e_f(1) man page. Briefly, references are rather like
pointers that know what they point to. (Objects are also
a kind of reference, but we won't be needing them right
away--if ever.) That means that when you have something
that looks to you like an access to two-or-more-
dimensional array and/or hash, that what's really going on
is that in all these cases, the base type is merely a one-
dimensional entity that contains references to the next
level. It's just that you can _u_s_e it as though it were a
two-dimensional one. This is actually the way almost all
C multidimensional arrays work as well.
$$$$lllliiiisssstttt[[[[7777]]]][[[[11112222]]]] #### aaaarrrrrrrraaaayyyy ooooffff aaaarrrrrrrraaaayyyyssss
$$$$lllliiiisssstttt[[[[7777]]]]{{{{ssssttttrrrriiiinnnngggg}}}} #### aaaarrrrrrrraaaayyyy ooooffff hhhhaaaasssshhhheeeessss
$$$$hhhhaaaasssshhhh{{{{ssssttttrrrriiiinnnngggg}}}}[[[[7777]]]] #### hhhhaaaasssshhhh ooooffff aaaarrrrrrrraaaayyyyssss
$$$$hhhhaaaasssshhhh{{{{ssssttttrrrriiiinnnngggg}}}}{{{{''''aaaannnnooootttthhhheeeerrrr ssssttttrrrriiiinnnngggg''''}}}} #### hhhhaaaasssshhhh ooooffff hhhhaaaasssshhhheeeessss
30/Jan/96 perl 5.002 with 2
PERLDSC(1) User Contributed Perl Documentation PERLDSC(1)
Now, because the top level only contains references, if
you try to print out your array in with a simple _p_r_i_n_t_(_)
function, you'll get something that doesn't look very
nice, like this:
@@@@LLLLooooLLLL ==== (((( [[[[2222,,,, 3333]]]],,,, [[[[4444,,,, 5555,,,, 7777]]]],,,, [[[[0000]]]] ))));;;;
pppprrrriiiinnnntttt $$$$LLLLooooLLLL[[[[1111]]]][[[[2222]]]];;;;
7777
pppprrrriiiinnnntttt @@@@LLLLooooLLLL;;;;
AAAARRRRRRRRAAAAYYYY((((0000xxxx88883333cccc33338888))))AAAARRRRRRRRAAAAYYYY((((0000xxxx8888bbbb111199994444))))AAAARRRRRRRRAAAAYYYY((((0000xxxx8888bbbb1111dddd0000))))
That's because Perl doesn't (ever) implicitly dereference
your variables. If you want to get at the thing a
reference is referring to, then you have to do this
yourself using either prefix typing indicators, like
$$$${{{{$$$$bbbbllllaaaahhhh}}}}, @@@@{{{{$$$$bbbbllllaaaahhhh}}}}, @@@@{{{{$$$$bbbbllllaaaahhhh[[[[$$$$iiii]]]]}}}}, or else postfix pointer
arrows, like $$$$aaaa---->>>>[[[[3333]]]], $$$$hhhh---->>>>{{{{ffffrrrreeeedddd}}}}, or even
$$$$oooobbbb---->>>>_m_e_t_h_o_d_(_)->[3].
CCCCOOOOMMMMMMMMOOOONNNN MMMMIIIISSSSTTTTAAAAKKKKEEEESSSS
The two most common mistakes made in constructing
something like an array of arrays is either accidentally
counting the number of elements or else taking a reference
to the same memory location repeatedly. Here's the case
where you just get the count instead of a nested array:
ffffoooorrrr $$$$iiii ((((1111........11110000)))) {{{{
@@@@lllliiiisssstttt ==== ssssoooommmmeeeeffffuuuunnnncccc(((($$$$iiii))));;;;
$$$$LLLLooooLLLL[[[[$$$$iiii]]]] ==== @@@@lllliiiisssstttt;;;; #### WWWWRRRROOOONNNNGGGG!!!!
}}}}
That's just the simple case of assigning a list to a
scalar and getting its element count. If that's what you
really and truly want, then you might do well to consider
being a tad more explicit about it, like this:
ffffoooorrrr $$$$iiii ((((1111........11110000)))) {{{{
@@@@lllliiiisssstttt ==== ssssoooommmmeeeeffffuuuunnnncccc(((($$$$iiii))));;;;
$$$$ccccoooouuuunnnnttttssss[[[[$$$$iiii]]]] ==== ssssccccaaaallllaaaarrrr @@@@lllliiiisssstttt;;;;
}}}}
Here's the case of taking a reference to the same memory
location again and again:
ffffoooorrrr $$$$iiii ((((1111........11110000)))) {{{{
@@@@lllliiiisssstttt ==== ssssoooommmmeeeeffffuuuunnnncccc(((($$$$iiii))));;;;
$$$$LLLLooooLLLL[[[[$$$$iiii]]]] ==== \\\\@@@@lllliiiisssstttt;;;; #### WWWWRRRROOOONNNNGGGG!!!!
}}}}
So, just what's the big problem with that? It looks
right, doesn't it? After all, I just told you that you
need an array of references, so by golly, you've made me
one!
30/Jan/96 perl 5.002 with 3
PERLDSC(1) User Contributed Perl Documentation PERLDSC(1)
Unfortunately, while this is true, it's still broken. All
the references in @@@@LLLLooooLLLL refer to the _v_e_r_y _s_a_m_e _p_l_a_c_e, and
they will therefore all hold whatever was last in @@@@lllliiiisssstttt!
It's similar to the problem demonstrated in the following
C program:
####iiiinnnncccclllluuuuddddeeee <<<<ppppwwwwdddd....hhhh>>>>
mmmmaaaaiiiinnnn(((()))) {{{{
ssssttttrrrruuuucccctttt ppppaaaasssssssswwwwdddd ****ggggeeeettttppppwwwwnnnnaaaammmm(((()))),,,, ****rrrrpppp,,,, ****ddddpppp;;;;
rrrrpppp ==== ggggeeeettttppppwwwwnnnnaaaammmm((((""""rrrrooooooootttt""""))));;;;
ddddpppp ==== ggggeeeettttppppwwwwnnnnaaaammmm((((""""ddddaaaaeeeemmmmoooonnnn""""))));;;;
pppprrrriiiinnnnttttffff((((""""ddddaaaaeeeemmmmoooonnnn nnnnaaaammmmeeee iiiissss %%%%ssss\\\\nnnnrrrrooooooootttt nnnnaaaammmmeeee iiiissss %%%%ssss\\\\nnnn"""",,,,
ddddpppp---->>>>ppppwwww____nnnnaaaammmmeeee,,,, rrrrpppp---->>>>ppppwwww____nnnnaaaammmmeeee))));;;;
}}}}
Which will print
ddddaaaaeeeemmmmoooonnnn nnnnaaaammmmeeee iiiissss ddddaaaaeeeemmmmoooonnnn
rrrrooooooootttt nnnnaaaammmmeeee iiiissss ddddaaaaeeeemmmmoooonnnn
The problem is that both rrrrpppp and ddddpppp are pointers to the
same location in memory! In C, you'd have to remember to
_m_a_l_l_o_c_(_) yourself some new memory. In Perl, you'll want
to use the array constructor [[[[]]]] or the hash constructor {{{{}}}}
instead. Here's the right way to do the preceding broken
code fragments
ffffoooorrrr $$$$iiii ((((1111........11110000)))) {{{{
@@@@lllliiiisssstttt ==== ssssoooommmmeeeeffffuuuunnnncccc(((($$$$iiii))));;;;
$$$$LLLLooooLLLL[[[[$$$$iiii]]]] ==== [[[[ @@@@lllliiiisssstttt ]]]];;;;
}}}}
The square brackets make a reference to a new array with a
_c_o_p_y of what's in @@@@lllliiiisssstttt at the time of the assignment.
This is what you want.
Note that this will produce something similar, but it's
much harder to read:
ffffoooorrrr $$$$iiii ((((1111........11110000)))) {{{{
@@@@lllliiiisssstttt ==== 0000 ........ $$$$iiii;;;;
@@@@{{{{$$$$LLLLooooLLLL[[[[$$$$iiii]]]]}}}} ==== @@@@lllliiiisssstttt;;;;
}}}}
Is it the same? Well, maybe so--and maybe not. The
subtle difference is that when you assign something in
square brackets, you know for sure it's always a brand new
reference with a new _c_o_p_y of the data. Something else
could be going on in this new case with the @@@@{{{{$$$$LLLLooooLLLL[[[[$$$$iiii]]]]}}}}}}}}
dereference on the left-hand-side of the assignment. It
all depends on whether $$$$LLLLooooLLLL[[[[$$$$iiii]]]] had been undefined to
start with, or whether it already contained a reference.
If you had already populated @@@@LLLLooooLLLL with references, as in
30/Jan/96 perl 5.002 with 4
PERLDSC(1) User Contributed Perl Documentation PERLDSC(1)
$$$$LLLLooooLLLL[[[[3333]]]] ==== \\\\@@@@aaaannnnooootttthhhheeeerrrr____lllliiiisssstttt;;;;
Then the assignment with the indirection on the left-hand-
side would use the existing reference that was already
there:
@@@@{{{{$$$$LLLLooooLLLL[[[[3333]]]]}}}} ==== @@@@lllliiiisssstttt;;;;
Of course, this _w_o_u_l_d have the "interesting" effect of
clobbering @@@@aaaannnnooootttthhhheeeerrrr____lllliiiisssstttt. (Have you ever noticed how when
a programmer says something is "interesting", that rather
than meaning "intriguing", they're disturbingly more apt
to mean that it's "annoying", "difficult", or both? :-)
So just remember to always use the array or hash
constructors with [[[[]]]] or {{{{}}}}, and you'll be fine, although
it's not always optimally efficient.
Surprisingly, the following dangerous-looking construct
will actually work out fine:
ffffoooorrrr $$$$iiii ((((1111........11110000)))) {{{{
mmmmyyyy @@@@lllliiiisssstttt ==== ssssoooommmmeeeeffffuuuunnnncccc(((($$$$iiii))));;;;
$$$$LLLLooooLLLL[[[[$$$$iiii]]]] ==== \\\\@@@@lllliiiisssstttt;;;;
}}}}
That's because _m_y_(_) is more of a run-time statement than
it is a compile-time declaration _p_e_r _s_e. This means that
the _m_y_(_) variable is remade afresh each time through the
loop. So even though it _l_o_o_k_s as though you stored the
same variable reference each time, you actually did not!
This is a subtle distinction that can produce more
efficient code at the risk of misleading all but the most
experienced of programmers. So I usually advise against
teaching it to beginners. In fact, except for passing
arguments to functions, I seldom like to see the gimme-a-
reference operator (backslash) used much at all in code.
Instead, I advise beginners that they (and most of the
rest of us) should try to use the much more easily
understood constructors [[[[]]]] and {{{{}}}} instead of relying upon
lexical (or dynamic) scoping and hidden reference-counting
to do the right thing behind the scenes.
In summary:
$$$$LLLLooooLLLL[[[[$$$$iiii]]]] ==== [[[[ @@@@lllliiiisssstttt ]]]];;;; #### uuuussssuuuuaaaallllllllyyyy bbbbeeeesssstttt
$$$$LLLLooooLLLL[[[[$$$$iiii]]]] ==== \\\\@@@@lllliiiisssstttt;;;; #### ppppeeeerrrriiiilllloooouuuussss;;;; jjjjuuuusssstttt hhhhoooowwww mmmmyyyy(((()))) wwwwaaaassss tttthhhhaaaatttt lllliiiisssstttt????
@@@@{{{{ $$$$LLLLooooLLLL[[[[$$$$iiii]]]] }}}} ==== @@@@lllliiiisssstttt;;;; #### wwwwaaaayyyy ttttoooooooo ttttrrrriiiicccckkkkyyyy ffffoooorrrr mmmmoooosssstttt pppprrrrooooggggrrrraaaammmmmmmmeeeerrrrssss
CCCCAAAAVVVVEEEEAAAATTTT OOOONNNN PPPPRRRREEEECCCCEEEEDDDDEEEENNNNCCCCEEEE
Speaking of things like @@@@{{{{$$$$LLLLooooLLLL[[[[$$$$iiii]]]]}}}}, the following are
actually the same thing:
30/Jan/96 perl 5.002 with 5
PERLDSC(1) User Contributed Perl Documentation PERLDSC(1)
$$$$lllliiiissssttttrrrreeeeffff---->>>>[[[[2222]]]][[[[2222]]]] #### cccclllleeeeaaaarrrr
$$$$$$$$lllliiiissssttttrrrreeeeffff[[[[2222]]]][[[[2222]]]] #### ccccoooonnnnffffuuuussssiiiinnnngggg
That's because Perl's precedence rules on its five prefix
dereferencers (which look like someone swearing: $$$$ @@@@ **** %%%%
&&&&) make them bind more tightly than the postfix
subscripting brackets or braces! This will no doubt come
as a great shock to the C or C++ programmer, who is quite
accustomed to using ****aaaa[[[[iiii]]]] to mean what's pointed to by the
_i_'_t_h element of aaaa. That is, they first take the
subscript, and only then dereference the thing at that
subscript. That's fine in C, but this isn't C.
The seemingly equivalent construct in Perl, $$$$$$$$lllliiiissssttttrrrreeeeffff[[[[$$$$iiii]]]]
first does the deref of $$$$lllliiiissssttttrrrreeeeffff, making it take $$$$lllliiiissssttttrrrreeeeffff
as a reference to an array, and then dereference that, and
finally tell you the _i_'_t_h value of the array pointed to by
$$$$LLLLooooLLLL. If you wanted the C notion, you'd have to write
$$$${{{{$$$$LLLLooooLLLL[[[[$$$$iiii]]]]}}}} to force the $$$$LLLLooooLLLL[[[[$$$$iiii]]]] to get evaluated first
before the leading $$$$ dereferencer.
WWWWHHHHYYYY YYYYOOOOUUUU SSSSHHHHOOOOUUUULLLLDDDD AAAALLLLWWWWAAAAYYYYSSSS uuuusssseeee ssssttttrrrriiiicccctttt
If this is starting to sound scarier than it's worth,
relax. Perl has some features to help you avoid its most
common pitfalls. The best way to avoid getting confused
is to start every program like this:
####!!!!////uuuussssrrrr////bbbbiiiinnnn////ppppeeeerrrrllll ----wwww
uuuusssseeee ssssttttrrrriiiicccctttt;;;;
This way, you'll be forced to declare all your variables
with _m_y_(_) and also disallow accidental "symbolic
dereferencing". Therefore if you'd done this:
mmmmyyyy $$$$lllliiiissssttttrrrreeeeffff ==== [[[[
[[[[ """"ffffrrrreeeedddd"""",,,, """"bbbbaaaarrrrnnnneeeeyyyy"""",,,, """"ppppeeeebbbbbbbblllleeeessss"""",,,, """"bbbbaaaammmmbbbbaaaammmm"""",,,, """"ddddiiiinnnnoooo"""",,,, ]]]],,,,
[[[[ """"hhhhoooommmmeeeerrrr"""",,,, """"bbbbaaaarrrrtttt"""",,,, """"mmmmaaaarrrrggggeeee"""",,,, """"mmmmaaaaggggggggiiiieeee"""",,,, ]]]],,,,
[[[[ """"ggggeeeeoooorrrrggggeeee"""",,,, """"jjjjaaaannnneeee"""",,,, """"aaaallllrrrrooooyyyy"""",,,, """"jjjjuuuuddddyyyy"""",,,, ]]]],,,,
]]]];;;;
pppprrrriiiinnnntttt $$$$lllliiiissssttttrrrreeeeffff[[[[2222]]]][[[[2222]]]];;;;
The compiler would immediately flag that as an error _a_t
_c_o_m_p_i_l_e _t_i_m_e, because you were accidentally accessing
@@@@lllliiiissssttttrrrreeeeffff, an undeclared variable, and it would thereby
remind you to instead write:
pppprrrriiiinnnntttt $$$$lllliiiissssttttrrrreeeeffff---->>>>[[[[2222]]]][[[[2222]]]]
DDDDEEEEBBBBUUUUGGGGGGGGIIIINNNNGGGG
The standard Perl debugger in 5.001 doesn't do a very nice
job of printing out complex data structures. However, the
perl5db that Ilya Zakharevich <_i_l_y_a_@_m_a_t_h_._o_h_i_o_-_s_t_a_t_e_._e_d_u>
30/Jan/96 perl 5.002 with 6
PERLDSC(1) User Contributed Perl Documentation PERLDSC(1)
wrote, which is accessible at
ffffttttpppp::::////////ffffttttpppp....ppppeeeerrrrllll....ccccoooommmm////ppppuuuubbbb////ppppeeeerrrrllll////eeeexxxxtttt////ppppeeeerrrrllll5555ddddbbbb----kkkkiiiitttt----0000....9999....ttttaaaarrrr....ggggzzzz
has several new features, including command line editing
as well as the xxxx command to dump out complex data
structures. For example, given the assignment to $$$$LLLLooooLLLL
above, here's the debugger output:
DDDDBBBB<<<<1111>>>> XXXX $$$$LLLLooooLLLL
$$$$LLLLooooLLLL ==== AAAARRRRRRRRAAAAYYYY((((0000xxxx11113333bbbb5555aaaa0000))))
0000 AAAARRRRRRRRAAAAYYYY((((0000xxxx1111ffff0000aaaa22224444))))
0000 ''''ffffrrrreeeedddd''''
1111 ''''bbbbaaaarrrrnnnneeeeyyyy''''
2222 ''''ppppeeeebbbbbbbblllleeeessss''''
3333 ''''bbbbaaaammmmbbbbaaaammmm''''
4444 ''''ddddiiiinnnnoooo''''
1111 AAAARRRRRRRRAAAAYYYY((((0000xxxx11113333bbbb555555558888))))
0000 ''''hhhhoooommmmeeeerrrr''''
1111 ''''bbbbaaaarrrrtttt''''
2222 ''''mmmmaaaarrrrggggeeee''''
3333 ''''mmmmaaaaggggggggiiiieeee''''
2222 AAAARRRRRRRRAAAAYYYY((((0000xxxx11113333bbbb555544440000))))
0000 ''''ggggeeeeoooorrrrggggeeee''''
1111 ''''jjjjaaaannnneeee''''
2222 ''''aaaallllrrrrooooyyyy''''
3333 ''''jjjjuuuuddddyyyy''''
There's also a lower-case xxxx command which is nearly the
same.
CCCCOOOODDDDEEEE EEEEXXXXAAAAMMMMPPPPLLLLEEEESSSS
Presented with little comment (these will get their own
man pages someday) here are short code examples
illustrating access of various types of data structures.
LLLLIIIISSSSTTTTSSSS OOOOFFFF LLLLIIIISSSSTTTTSSSS
DDDDeeeeccccllllaaaarrrraaaattttiiiioooonnnn ooooffff aaaa LLLLIIIISSSSTTTT OOOOFFFF LLLLIIIISSSSTTTTSSSS
@@@@LLLLooooLLLL ==== ((((
[[[[ """"ffffrrrreeeedddd"""",,,, """"bbbbaaaarrrrnnnneeeeyyyy"""" ]]]],,,,
[[[[ """"ggggeeeeoooorrrrggggeeee"""",,,, """"jjjjaaaannnneeee"""",,,, """"eeeellllrrrrooooyyyy"""" ]]]],,,,
[[[[ """"hhhhoooommmmeeeerrrr"""",,,, """"mmmmaaaarrrrggggeeee"""",,,, """"bbbbaaaarrrrtttt"""" ]]]],,,,
))));;;;
GGGGeeeennnneeeerrrraaaattttiiiioooonnnn ooooffff aaaa LLLLIIIISSSSTTTT OOOOFFFF LLLLIIIISSSSTTTTSSSS
#### rrrreeeeaaaaddddiiiinnnngggg ffffrrrroooommmm ffffiiiilllleeee
wwwwhhhhiiiilllleeee (((( <<<<>>>> )))) {{{{
ppppuuuusssshhhh @@@@LLLLooooLLLL,,,, [[[[ sssspppplllliiiitttt ]]]];;;;
30/Jan/96 perl 5.002 with 7
PERLDSC(1) User Contributed Perl Documentation PERLDSC(1)
#### ccccaaaalllllllliiiinnnngggg aaaa ffffuuuunnnnccccttttiiiioooonnnn
ffffoooorrrr $$$$iiii (((( 1111 ........ 11110000 )))) {{{{
$$$$LLLLooooLLLL[[[[$$$$iiii]]]] ==== [[[[ ssssoooommmmeeeeffffuuuunnnncccc(((($$$$iiii)))) ]]]];;;;
#### uuuussssiiiinnnngggg tttteeeemmmmpppp vvvvaaaarrrrssss
ffffoooorrrr $$$$iiii (((( 1111 ........ 11110000 )))) {{{{
@@@@ttttmmmmpppp ==== ssssoooommmmeeeeffffuuuunnnncccc(((($$$$iiii))));;;;
$$$$LLLLooooLLLL[[[[$$$$iiii]]]] ==== [[[[ @@@@ttttmmmmpppp ]]]];;;;
#### aaaadddddddd ttttoooo aaaannnn eeeexxxxiiiissssttttiiiinnnngggg rrrroooowwww
ppppuuuusssshhhh @@@@{{{{ $$$$LLLLooooLLLL[[[[0000]]]] }}}},,,, """"wwwwiiiillllmmmmaaaa"""",,,, """"bbbbeeeettttttttyyyy"""";;;;
AAAAcccccccceeeessssssss aaaannnndddd PPPPrrrriiiinnnnttttiiiinnnngggg ooooffff aaaa LLLLIIIISSSSTTTT OOOOFFFF LLLLIIIISSSSTTTTSSSS
#### oooonnnneeee eeeelllleeeemmmmeeeennnntttt
$$$$LLLLooooLLLL[[[[0000]]]][[[[0000]]]] ==== """"FFFFrrrreeeedddd"""";;;;
#### aaaannnnooootttthhhheeeerrrr eeeelllleeeemmmmeeeennnntttt
$$$$LLLLooooLLLL[[[[1111]]]][[[[1111]]]] ====~~~~ ssss////((((\\\\wwww))))////\\\\uuuu$$$$1111////;;;;
#### pppprrrriiiinnnntttt tttthhhheeee wwwwhhhhoooolllleeee tttthhhhiiiinnnngggg wwwwiiiitttthhhh rrrreeeeffffssss
ffffoooorrrr $$$$aaaarrrreeeeffff (((( @@@@LLLLooooLLLL )))) {{{{
pppprrrriiiinnnntttt """"\\\\tttt [[[[ @@@@$$$$aaaarrrreeeeffff ]]]],,,,\\\\nnnn"""";;;;
#### pppprrrriiiinnnntttt tttthhhheeee wwwwhhhhoooolllleeee tttthhhhiiiinnnngggg wwwwiiiitttthhhh iiiinnnnddddiiiicccceeeessss
ffffoooorrrr $$$$iiii (((( 0000 ........ $$$$####LLLLooooLLLL )))) {{{{
pppprrrriiiinnnntttt """"\\\\tttt [[[[ @@@@{{{{$$$$LLLLooooLLLL[[[[$$$$iiii]]]]}}}} ]]]],,,,\\\\nnnn"""";;;;
#### pppprrrriiiinnnntttt tttthhhheeee wwwwhhhhoooolllleeee tttthhhhiiiinnnngggg oooonnnneeee aaaatttt aaaa ttttiiiimmmmeeee
ffffoooorrrr $$$$iiii (((( 0000 ........ $$$$####LLLLooooLLLL )))) {{{{
ffffoooorrrr $$$$jjjj (((( 0000 ........ $$$$####{{{{$$$$LLLLooooLLLL[[[[$$$$iiii]]]]}}}} )))) {{{{
pppprrrriiiinnnntttt """"eeeelllltttt $$$$iiii $$$$jjjj iiiissss $$$$LLLLooooLLLL[[[[$$$$iiii]]]][[[[$$$$jjjj]]]]\\\\nnnn"""";;;;
}}}}
HHHHAAAASSSSHHHHEEEESSSS OOOOFFFF LLLLIIIISSSSTTTTSSSS
DDDDeeeeccccllllaaaarrrraaaattttiiiioooonnnn ooooffff aaaa HHHHAAAASSSSHHHH OOOOFFFF LLLLIIIISSSSTTTTSSSS
%%%%HHHHooooLLLL ==== ((((
""""fffflllliiiinnnnttttssssttttoooonnnneeeessss"""" ====>>>> [[[[ """"ffffrrrreeeedddd"""",,,, """"bbbbaaaarrrrnnnneeeeyyyy"""" ]]]],,,,
""""jjjjeeeettttssssoooonnnnssss"""" ====>>>> [[[[ """"ggggeeeeoooorrrrggggeeee"""",,,, """"jjjjaaaannnneeee"""",,,, """"eeeellllrrrrooooyyyy"""" ]]]],,,,
""""ssssiiiimmmmppppssssoooonnnnssss"""" ====>>>> [[[[ """"hhhhoooommmmeeeerrrr"""",,,, """"mmmmaaaarrrrggggeeee"""",,,, """"bbbbaaaarrrrtttt"""" ]]]],,,,
))));;;;
GGGGeeeennnneeeerrrraaaattttiiiioooonnnn ooooffff aaaa HHHHAAAASSSSHHHH OOOOFFFF LLLLIIIISSSSTTTTSSSS
30/Jan/96 perl 5.002 with 8
PERLDSC(1) User Contributed Perl Documentation PERLDSC(1)
#### rrrreeeeaaaaddddiiiinnnngggg ffffrrrroooommmm ffffiiiilllleeee
#### fffflllliiiinnnnttttssssttttoooonnnneeeessss:::: ffffrrrreeeedddd bbbbaaaarrrrnnnneeeeyyyy wwwwiiiillllmmmmaaaa ddddiiiinnnnoooo
wwwwhhhhiiiilllleeee (((( <<<<>>>> )))) {{{{
nnnneeeexxxxtttt uuuunnnnlllleeeessssssss ssss////^^^^((((....****????))))::::\\\\ssss****////////;;;;
$$$$HHHHooooLLLL{{{{$$$$1111}}}} ==== [[[[ sssspppplllliiiitttt ]]]];;;;
#### rrrreeeeaaaaddddiiiinnnngggg ffffrrrroooommmm ffffiiiilllleeee;;;; mmmmoooorrrreeee tttteeeemmmmppppssss
#### fffflllliiiinnnnttttssssttttoooonnnneeeessss:::: ffffrrrreeeedddd bbbbaaaarrrrnnnneeeeyyyy wwwwiiiillllmmmmaaaa ddddiiiinnnnoooo
wwwwhhhhiiiilllleeee (((( $$$$lllliiiinnnneeee ==== <<<<>>>> )))) {{{{
(((($$$$wwwwhhhhoooo,,,, $$$$rrrreeeesssstttt)))) ==== sssspppplllliiiitttt ////::::\\\\ssss****////,,,, $$$$lllliiiinnnneeee,,,, 2222;;;;
@@@@ffffiiiieeeellllddddssss ==== sssspppplllliiiitttt '''' '''',,,, $$$$rrrreeeesssstttt;;;;
$$$$HHHHooooLLLL{{{{$$$$wwwwhhhhoooo}}}} ==== [[[[ @@@@ffffiiiieeeellllddddssss ]]]];;;;
#### ccccaaaalllllllliiiinnnngggg aaaa ffffuuuunnnnccccttttiiiioooonnnn tttthhhhaaaatttt rrrreeeettttuuuurrrrnnnnssss aaaa lllliiiisssstttt
ffffoooorrrr $$$$ggggrrrroooouuuupppp (((( """"ssssiiiimmmmppppssssoooonnnnssss"""",,,, """"jjjjeeeettttssssoooonnnnssss"""",,,, """"fffflllliiiinnnnttttssssttttoooonnnneeeessss"""" )))) {{{{
$$$$HHHHooooLLLL{{{{$$$$ggggrrrroooouuuupppp}}}} ==== [[[[ ggggeeeetttt____ffffaaaammmmiiiillllyyyy(((($$$$ggggrrrroooouuuupppp)))) ]]]];;;;
#### lllliiiikkkkeeeewwwwiiiisssseeee,,,, bbbbuuuutttt uuuussssiiiinnnngggg tttteeeemmmmppppssss
ffffoooorrrr $$$$ggggrrrroooouuuupppp (((( """"ssssiiiimmmmppppssssoooonnnnssss"""",,,, """"jjjjeeeettttssssoooonnnnssss"""",,,, """"fffflllliiiinnnnttttssssttttoooonnnneeeessss"""" )))) {{{{
@@@@mmmmeeeemmmmbbbbeeeerrrrssss ==== ggggeeeetttt____ffffaaaammmmiiiillllyyyy(((($$$$ggggrrrroooouuuupppp))));;;;
$$$$HHHHooooLLLL{{{{$$$$ggggrrrroooouuuupppp}}}} ==== [[[[ @@@@mmmmeeeemmmmbbbbeeeerrrrssss ]]]];;;;
#### aaaappppppppeeeennnndddd nnnneeeewwww mmmmeeeemmmmbbbbeeeerrrrssss ttttoooo aaaannnn eeeexxxxiiiissssttttiiiinnnngggg ffffaaaammmmiiiillllyyyy
ppppuuuusssshhhh @@@@{{{{ $$$$HHHHooooLLLL{{{{""""fffflllliiiinnnnttttssssttttoooonnnneeeessss""""}}}} }}}},,,, """"wwwwiiiillllmmmmaaaa"""",,,, """"bbbbeeeettttttttyyyy"""";;;;
AAAAcccccccceeeessssssss aaaannnndddd PPPPrrrriiiinnnnttttiiiinnnngggg ooooffff aaaa HHHHAAAASSSSHHHH OOOOFFFF LLLLIIIISSSSTTTTSSSS
#### oooonnnneeee eeeelllleeeemmmmeeeennnntttt
$$$$HHHHooooLLLL{{{{fffflllliiiinnnnttttssssttttoooonnnneeeessss}}}}[[[[0000]]]] ==== """"FFFFrrrreeeedddd"""";;;;
#### aaaannnnooootttthhhheeeerrrr eeeelllleeeemmmmeeeennnntttt
$$$$HHHHooooLLLL{{{{ssssiiiimmmmppppssssoooonnnnssss}}}}[[[[1111]]]] ====~~~~ ssss////((((\\\\wwww))))////\\\\uuuu$$$$1111////;;;;
#### pppprrrriiiinnnntttt tttthhhheeee wwwwhhhhoooolllleeee tttthhhhiiiinnnngggg
ffffoooorrrreeeeaaaacccchhhh $$$$ffffaaaammmmiiiillllyyyy (((( kkkkeeeeyyyyssss %%%%HHHHooooLLLL )))) {{{{
pppprrrriiiinnnntttt """"$$$$ffffaaaammmmiiiillllyyyy:::: @@@@{{{{ $$$$HHHHooooLLLL{{{{$$$$ffffaaaammmmiiiillllyyyy}}}} }}}}\\\\nnnn""""
#### pppprrrriiiinnnntttt tttthhhheeee wwwwhhhhoooolllleeee tttthhhhiiiinnnngggg wwwwiiiitttthhhh iiiinnnnddddiiiicccceeeessss
ffffoooorrrreeeeaaaacccchhhh $$$$ffffaaaammmmiiiillllyyyy (((( kkkkeeeeyyyyssss %%%%HHHHooooLLLL )))) {{{{
pppprrrriiiinnnntttt """"ffffaaaammmmiiiillllyyyy:::: """";;;;
ffffoooorrrreeeeaaaacccchhhh $$$$iiii (((( 0000 ........ $$$$####{{{{ $$$$HHHHooooLLLL{{{{$$$$ffffaaaammmmiiiillllyyyy}}}} )))) {{{{
pppprrrriiiinnnntttt """" $$$$iiii ==== $$$$HHHHooooLLLL{{{{$$$$ffffaaaammmmiiiillllyyyy}}}}[[[[$$$$iiii]]]]"""";;;;
}}}}
pppprrrriiiinnnntttt """"\\\\nnnn"""";;;;
#### pppprrrriiiinnnntttt tttthhhheeee wwwwhhhhoooolllleeee tttthhhhiiiinnnngggg ssssoooorrrrtttteeeedddd bbbbyyyy nnnnuuuummmmbbbbeeeerrrr ooooffff mmmmeeeemmmmbbbbeeeerrrrssss
ffffoooorrrreeeeaaaacccchhhh $$$$ffffaaaammmmiiiillllyyyy (((( ssssoooorrrrtttt {{{{ @@@@{{{{$$$$HHHHooooLLLL{{{{$$$$bbbb}}}}}}}} <<<<====>>>> @@@@{{{{$$$$HHHHooooLLLL{{{{$$$$bbbb}}}}}}}} }}}} kkkkeeeeyyyyssss %%%%HHHHooooLLLL )))) {{{{
pppprrrriiiinnnntttt """"$$$$ffffaaaammmmiiiillllyyyy:::: @@@@{{{{ $$$$HHHHooooLLLL{{{{$$$$ffffaaaammmmiiiillllyyyy}}}} }}}}\\\\nnnn""""
#### pppprrrriiiinnnntttt tttthhhheeee wwwwhhhhoooolllleeee tttthhhhiiiinnnngggg ssssoooorrrrtttteeeedddd bbbbyyyy nnnnuuuummmmbbbbeeeerrrr ooooffff mmmmeeeemmmmbbbbeeeerrrrssss aaaannnndddd nnnnaaaammmmeeee
ffffoooorrrreeeeaaaacccchhhh $$$$ffffaaaammmmiiiillllyyyy (((( ssssoooorrrrtttt {{{{ @@@@{{{{$$$$HHHHooooLLLL{{{{$$$$bbbb}}}}}}}} <<<<====>>>> @@@@{{{{$$$$HHHHooooLLLL{{{{$$$$aaaa}}}}}}}} }}}} kkkkeeeeyyyyssss %%%%HHHHooooLLLL )))) {{{{
pppprrrriiiinnnntttt """"$$$$ffffaaaammmmiiiillllyyyy:::: """",,,, jjjjooooiiiinnnn(((("""",,,, """",,,, ssssoooorrrrtttt @@@@{{{{ $$$$HHHHooooLLLL{{{{$$$$ffffaaaammmmiiiillllyyyy}}}})))),,,, """"\\\\nnnn"""";;;;
30/Jan/96 perl 5.002 with 9
PERLDSC(1) User Contributed Perl Documentation PERLDSC(1)
LLLLIIIISSSSTTTTSSSS OOOOFFFF HHHHAAAASSSSHHHHEEEESSSS
DDDDeeeeccccllllaaaarrrraaaattttiiiioooonnnn ooooffff aaaa LLLLIIIISSSSTTTT OOOOFFFF HHHHAAAASSSSHHHHEEEESSSS
@@@@LLLLooooHHHH ==== ((((
{{{{
LLLLeeeeaaaadddd ====>>>> """"ffffrrrreeeedddd"""",,,,
FFFFrrrriiiieeeennnndddd ====>>>> """"bbbbaaaarrrrnnnneeeeyyyy"""",,,,
}}}},,,,
{{{{
LLLLeeeeaaaadddd ====>>>> """"ggggeeeeoooorrrrggggeeee"""",,,,
WWWWiiiiffffeeee ====>>>> """"jjjjaaaannnneeee"""",,,,
SSSSoooonnnn ====>>>> """"eeeellllrrrrooooyyyy"""",,,,
}}}},,,,
{{{{
LLLLeeeeaaaadddd ====>>>> """"hhhhoooommmmeeeerrrr"""",,,,
WWWWiiiiffffeeee ====>>>> """"mmmmaaaarrrrggggeeee"""",,,,
SSSSoooonnnn ====>>>> """"bbbbaaaarrrrtttt"""",,,,
}}}}
))));;;;
GGGGeeeennnneeeerrrraaaattttiiiioooonnnn ooooffff aaaa LLLLIIIISSSSTTTT OOOOFFFF HHHHAAAASSSSHHHHEEEESSSS
#### rrrreeeeaaaaddddiiiinnnngggg ffffrrrroooommmm ffffiiiilllleeee
#### ffffoooorrrrmmmmaaaatttt:::: LLLLEEEEAAAADDDD====ffffrrrreeeedddd FFFFRRRRIIIIEEEENNNNDDDD====bbbbaaaarrrrnnnneeeeyyyy
wwwwhhhhiiiilllleeee (((( <<<<>>>> )))) {{{{
$$$$rrrreeeecccc ==== {{{{}}}};;;;
ffffoooorrrr $$$$ffffiiiieeeelllldddd (((( sssspppplllliiiitttt )))) {{{{
(((($$$$kkkkeeeeyyyy,,,, $$$$vvvvaaaalllluuuueeee)))) ==== sssspppplllliiiitttt ////====////,,,, $$$$ffffiiiieeeelllldddd;;;;
$$$$rrrreeeecccc---->>>>{{{{$$$$kkkkeeeeyyyy}}}} ==== $$$$vvvvaaaalllluuuueeee;;;;
}}}}
ppppuuuusssshhhh @@@@LLLLooooHHHH,,,, $$$$rrrreeeecccc;;;;
#### rrrreeeeaaaaddddiiiinnnngggg ffffrrrroooommmm ffffiiiilllleeee
#### ffffoooorrrrmmmmaaaatttt:::: LLLLEEEEAAAADDDD====ffffrrrreeeedddd FFFFRRRRIIIIEEEENNNNDDDD====bbbbaaaarrrrnnnneeeeyyyy
#### nnnnoooo tttteeeemmmmpppp
wwwwhhhhiiiilllleeee (((( <<<<>>>> )))) {{{{
ppppuuuusssshhhh @@@@LLLLooooHHHH,,,, {{{{ sssspppplllliiiitttt ////[[[[\\\\ssss++++====]]]]//// }}}};;;;
#### ccccaaaalllllllliiiinnnngggg aaaa ffffuuuunnnnccccttttiiiioooonnnn tttthhhhaaaatttt rrrreeeettttuuuurrrrnnnnssss aaaa kkkkeeeeyyyy,,,,vvvvaaaalllluuuueeee lllliiiisssstttt,,,, lllliiiikkkkeeee
#### """"lllleeeeaaaadddd"""",,,,""""ffffrrrreeeedddd"""",,,,""""ddddaaaauuuugggghhhhtttteeeerrrr"""",,,,""""ppppeeeebbbbbbbblllleeeessss""""
wwwwhhhhiiiilllleeee (((( %%%%ffffiiiieeeellllddddssss ==== ggggeeeettttnnnneeeexxxxttttppppaaaaiiiirrrrsssseeeetttt(((()))) ))))
ppppuuuusssshhhh @@@@LLLLooooHHHH,,,, {{{{ %%%%ffffiiiieeeellllddddssss }}}};;;;
#### lllliiiikkkkeeeewwwwiiiisssseeee,,,, bbbbuuuutttt uuuussssiiiinnnngggg nnnnoooo tttteeeemmmmpppp vvvvaaaarrrrssss
wwwwhhhhiiiilllleeee ((((<<<<>>>>)))) {{{{
ppppuuuusssshhhh @@@@LLLLooooHHHH,,,, {{{{ ppppaaaarrrrsssseeeeppppaaaaiiiirrrrssss(((($$$$____)))) }}}};;;;
#### aaaadddddddd kkkkeeeeyyyy////vvvvaaaalllluuuueeee ttttoooo aaaannnn eeeelllleeeemmmmeeeennnntttt
$$$$LLLLooooHHHH[[[[0000]]]]{{{{""""ppppeeeetttt""""}}}} ==== """"ddddiiiinnnnoooo"""";;;;
$$$$LLLLooooHHHH[[[[2222]]]]{{{{""""ppppeeeetttt""""}}}} ==== """"ssssaaaannnnttttaaaa''''ssss lllliiiittttttttlllleeee hhhheeeellllppppeeeerrrr"""";;;;
30/Jan/96 perl 5.002 with 10
PERLDSC(1) User Contributed Perl Documentation PERLDSC(1)
AAAAcccccccceeeessssssss aaaannnndddd PPPPrrrriiiinnnnttttiiiinnnngggg ooooffff aaaa LLLLIIIISSSSTTTT OOOOFFFF HHHHAAAASSSSHHHHEEEESSSS
#### oooonnnneeee eeeelllleeeemmmmeeeennnntttt
$$$$LLLLooooHHHH[[[[0000]]]]{{{{""""lllleeeeaaaadddd""""}}}} ==== """"ffffrrrreeeedddd"""";;;;
#### aaaannnnooootttthhhheeeerrrr eeeelllleeeemmmmeeeennnntttt
$$$$LLLLooooHHHH[[[[1111]]]]{{{{""""lllleeeeaaaadddd""""}}}} ====~~~~ ssss////((((\\\\wwww))))////\\\\uuuu$$$$1111////;;;;
#### pppprrrriiiinnnntttt tttthhhheeee wwwwhhhhoooolllleeee tttthhhhiiiinnnngggg wwwwiiiitttthhhh rrrreeeeffffssss
ffffoooorrrr $$$$hhhhrrrreeeeffff (((( @@@@LLLLooooHHHH )))) {{{{
pppprrrriiiinnnntttt """"{{{{ """";;;;
ffffoooorrrr $$$$rrrroooolllleeee (((( kkkkeeeeyyyyssss %%%%$$$$hhhhrrrreeeeffff )))) {{{{
pppprrrriiiinnnntttt """"$$$$rrrroooolllleeee====$$$$hhhhrrrreeeeffff---->>>>{{{{$$$$rrrroooolllleeee}}}} """";;;;
}}}}
pppprrrriiiinnnntttt """"}}}}\\\\nnnn"""";;;;
#### pppprrrriiiinnnntttt tttthhhheeee wwwwhhhhoooolllleeee tttthhhhiiiinnnngggg wwwwiiiitttthhhh iiiinnnnddddiiiicccceeeessss
ffffoooorrrr $$$$iiii (((( 0000 ........ $$$$####LLLLooooHHHH )))) {{{{
pppprrrriiiinnnntttt """"$$$$iiii iiiissss {{{{ """";;;;
ffffoooorrrr $$$$rrrroooolllleeee (((( kkkkeeeeyyyyssss %%%%{{{{ $$$$LLLLooooHHHH[[[[$$$$iiii]]]] }}}} )))) {{{{
pppprrrriiiinnnntttt """"$$$$rrrroooolllleeee====$$$$LLLLooooHHHH[[[[$$$$iiii]]]]{{{{$$$$rrrroooolllleeee}}}} """";;;;
}}}}
pppprrrriiiinnnntttt """"}}}}\\\\nnnn"""";;;;
#### pppprrrriiiinnnntttt tttthhhheeee wwwwhhhhoooolllleeee tttthhhhiiiinnnngggg oooonnnneeee aaaatttt aaaa ttttiiiimmmmeeee
ffffoooorrrr $$$$iiii (((( 0000 ........ $$$$####LLLLooooHHHH )))) {{{{
ffffoooorrrr $$$$rrrroooolllleeee (((( kkkkeeeeyyyyssss %%%%{{{{ $$$$LLLLooooHHHH[[[[$$$$iiii]]]] }}}} )))) {{{{
pppprrrriiiinnnntttt """"eeeelllltttt $$$$iiii $$$$rrrroooolllleeee iiiissss $$$$LLLLooooHHHH[[[[$$$$iiii]]]]{{{{$$$$rrrroooolllleeee}}}}\\\\nnnn"""";;;;
}}}}
HHHHAAAASSSSHHHHEEEESSSS OOOOFFFF HHHHAAAASSSSHHHHEEEESSSS
DDDDeeeeccccllllaaaarrrraaaattttiiiioooonnnn ooooffff aaaa HHHHAAAASSSSHHHH OOOOFFFF HHHHAAAASSSSHHHHEEEESSSS
%%%%HHHHooooHHHH ==== ((((
""""fffflllliiiinnnnttttssssttttoooonnnneeeessss"""" ====>>>> {{{{
""""lllleeeeaaaadddd"""" ====>>>> """"ffffrrrreeeedddd"""",,,,
""""ppppaaaallll"""" ====>>>> """"bbbbaaaarrrrnnnneeeeyyyy"""",,,,
}}}},,,,
""""jjjjeeeettttssssoooonnnnssss"""" ====>>>> {{{{
""""lllleeeeaaaadddd"""" ====>>>> """"ggggeeeeoooorrrrggggeeee"""",,,,
""""wwwwiiiiffffeeee"""" ====>>>> """"jjjjaaaannnneeee"""",,,,
""""hhhhiiiissss bbbbooooyyyy""""====>>>> """"eeeellllrrrrooooyyyy"""",,,,
}}}}
""""ssssiiiimmmmppppssssoooonnnnssss"""" ====>>>> {{{{
""""lllleeeeaaaadddd"""" ====>>>> """"hhhhoooommmmeeeerrrr"""",,,,
""""wwwwiiiiffffeeee"""" ====>>>> """"mmmmaaaarrrrggggeeee"""",,,,
""""kkkkiiiidddd"""" ====>>>> """"bbbbaaaarrrrtttt"""",,,,
))));;;;
30/Jan/96 perl 5.002 with 11
PERLDSC(1) User Contributed Perl Documentation PERLDSC(1)
GGGGeeeennnneeeerrrraaaattttiiiioooonnnn ooooffff aaaa HHHHAAAASSSSHHHH OOOOFFFF HHHHAAAASSSSHHHHEEEESSSS
#### rrrreeeeaaaaddddiiiinnnngggg ffffrrrroooommmm ffffiiiilllleeee
#### fffflllliiiinnnnttttssssttttoooonnnneeeessss:::: lllleeeeaaaadddd====ffffrrrreeeedddd ppppaaaallll====bbbbaaaarrrrnnnneeeeyyyy wwwwiiiiffffeeee====wwwwiiiillllmmmmaaaa ppppeeeetttt====ddddiiiinnnnoooo
wwwwhhhhiiiilllleeee (((( <<<<>>>> )))) {{{{
nnnneeeexxxxtttt uuuunnnnlllleeeessssssss ssss////^^^^((((....****????))))::::\\\\ssss****////////;;;;
$$$$wwwwhhhhoooo ==== $$$$1111;;;;
ffffoooorrrr $$$$ffffiiiieeeelllldddd (((( sssspppplllliiiitttt )))) {{{{
(((($$$$kkkkeeeeyyyy,,,, $$$$vvvvaaaalllluuuueeee)))) ==== sssspppplllliiiitttt ////====////,,,, $$$$ffffiiiieeeelllldddd;;;;
$$$$HHHHooooHHHH{{{{$$$$wwwwhhhhoooo}}}}{{{{$$$$kkkkeeeeyyyy}}}} ==== $$$$vvvvaaaalllluuuueeee;;;;
}}}}
#### rrrreeeeaaaaddddiiiinnnngggg ffffrrrroooommmm ffffiiiilllleeee;;;; mmmmoooorrrreeee tttteeeemmmmppppssss
wwwwhhhhiiiilllleeee (((( <<<<>>>> )))) {{{{
nnnneeeexxxxtttt uuuunnnnlllleeeessssssss ssss////^^^^((((....****????))))::::\\\\ssss****////////;;;;
$$$$wwwwhhhhoooo ==== $$$$1111;;;;
$$$$rrrreeeecccc ==== {{{{}}}};;;;
$$$$HHHHooooHHHH{{{{$$$$wwwwhhhhoooo}}}} ==== $$$$rrrreeeecccc;;;;
ffffoooorrrr $$$$ffffiiiieeeelllldddd (((( sssspppplllliiiitttt )))) {{{{
(((($$$$kkkkeeeeyyyy,,,, $$$$vvvvaaaalllluuuueeee)))) ==== sssspppplllliiiitttt ////====////,,,, $$$$ffffiiiieeeelllldddd;;;;
$$$$rrrreeeecccc---->>>>{{{{$$$$kkkkeeeeyyyy}}}} ==== $$$$vvvvaaaalllluuuueeee;;;;
}}}}
#### ccccaaaalllllllliiiinnnngggg aaaa ffffuuuunnnnccccttttiiiioooonnnn tttthhhhaaaatttt rrrreeeettttuuuurrrrnnnnssss aaaa kkkkeeeeyyyy,,,,vvvvaaaalllluuuueeee lllliiiisssstttt,,,, lllliiiikkkkeeee
#### """"lllleeeeaaaadddd"""",,,,""""ffffrrrreeeedddd"""",,,,""""ddddaaaauuuugggghhhhtttteeeerrrr"""",,,,""""ppppeeeebbbbbbbblllleeeessss""""
wwwwhhhhiiiilllleeee (((( %%%%ffffiiiieeeellllddddssss ==== ggggeeeettttnnnneeeexxxxttttppppaaaaiiiirrrrsssseeeetttt(((()))) ))))
ppppuuuusssshhhh @@@@aaaa,,,, {{{{ %%%%ffffiiiieeeellllddddssss }}}};;;;
#### ccccaaaalllllllliiiinnnngggg aaaa ffffuuuunnnnccccttttiiiioooonnnn tttthhhhaaaatttt rrrreeeettttuuuurrrrnnnnssss aaaa kkkkeeeeyyyy,,,,vvvvaaaalllluuuueeee hhhhaaaasssshhhh
ffffoooorrrr $$$$ggggrrrroooouuuupppp (((( """"ssssiiiimmmmppppssssoooonnnnssss"""",,,, """"jjjjeeeettttssssoooonnnnssss"""",,,, """"fffflllliiiinnnnttttssssttttoooonnnneeeessss"""" )))) {{{{
$$$$HHHHooooHHHH{{{{$$$$ggggrrrroooouuuupppp}}}} ==== {{{{ ggggeeeetttt____ffffaaaammmmiiiillllyyyy(((($$$$ggggrrrroooouuuupppp)))) }}}};;;;
#### lllliiiikkkkeeeewwwwiiiisssseeee,,,, bbbbuuuutttt uuuussssiiiinnnngggg tttteeeemmmmppppssss
ffffoooorrrr $$$$ggggrrrroooouuuupppp (((( """"ssssiiiimmmmppppssssoooonnnnssss"""",,,, """"jjjjeeeettttssssoooonnnnssss"""",,,, """"fffflllliiiinnnnttttssssttttoooonnnneeeessss"""" )))) {{{{
%%%%mmmmeeeemmmmbbbbeeeerrrrssss ==== ggggeeeetttt____ffffaaaammmmiiiillllyyyy(((($$$$ggggrrrroooouuuupppp))));;;;
$$$$HHHHooooHHHH{{{{$$$$ggggrrrroooouuuupppp}}}} ==== {{{{ %%%%mmmmeeeemmmmbbbbeeeerrrrssss }}}};;;;
#### aaaappppppppeeeennnndddd nnnneeeewwww mmmmeeeemmmmbbbbeeeerrrrssss ttttoooo aaaannnn eeeexxxxiiiissssttttiiiinnnngggg ffffaaaammmmiiiillllyyyy
%%%%nnnneeeewwww____ffffoooollllkkkkssss ==== ((((
""""wwwwiiiiffffeeee"""" ====>>>> """"wwwwiiiillllmmmmaaaa"""",,,,
""""ppppeeeetttt"""" ====>>>> """"ddddiiiinnnnoooo"""";;;;
))));;;;
ffffoooorrrr $$$$wwwwhhhhaaaatttt ((((kkkkeeeeyyyyssss %%%%nnnneeeewwww____ffffoooollllkkkkssss)))) {{{{
$$$$HHHHooooHHHH{{{{fffflllliiiinnnnttttssssttttoooonnnneeeessss}}}}{{{{$$$$wwwwhhhhaaaatttt}}}} ==== $$$$nnnneeeewwww____ffffoooollllkkkkssss{{{{$$$$wwwwhhhhaaaatttt}}}};;;;
AAAAcccccccceeeessssssss aaaannnndddd PPPPrrrriiiinnnnttttiiiinnnngggg ooooffff aaaa HHHHAAAASSSSHHHH OOOOFFFF HHHHAAAASSSSHHHHEEEESSSS
#### oooonnnneeee eeeelllleeeemmmmeeeennnntttt
$$$$HHHHooooHHHH{{{{""""fffflllliiiinnnnttttssssttttoooonnnneeeessss""""}}}}{{{{""""wwwwiiiiffffeeee""""}}}} ==== """"wwwwiiiillllmmmmaaaa"""";;;;
30/Jan/96 perl 5.002 with 12
PERLDSC(1) User Contributed Perl Documentation PERLDSC(1)
#### aaaannnnooootttthhhheeeerrrr eeeelllleeeemmmmeeeennnntttt
$$$$HHHHooooHHHH{{{{ssssiiiimmmmppppssssoooonnnnssss}}}}{{{{lllleeeeaaaadddd}}}} ====~~~~ ssss////((((\\\\wwww))))////\\\\uuuu$$$$1111////;;;;
#### pppprrrriiiinnnntttt tttthhhheeee wwwwhhhhoooolllleeee tttthhhhiiiinnnngggg
ffffoooorrrreeeeaaaacccchhhh $$$$ffffaaaammmmiiiillllyyyy (((( kkkkeeeeyyyyssss %%%%HHHHooooHHHH )))) {{{{
pppprrrriiiinnnntttt """"$$$$ffffaaaammmmiiiillllyyyy:::: """";;;;
ffffoooorrrr $$$$rrrroooolllleeee (((( kkkkeeeeyyyyssss %%%%{{{{ $$$$HHHHooooHHHH{{{{$$$$ffffaaaammmmiiiillllyyyy}}}} }}}} {{{{
pppprrrriiiinnnntttt """"$$$$rrrroooolllleeee====$$$$HHHHooooHHHH{{{{$$$$ffffaaaammmmiiiillllyyyy}}}}{{{{$$$$rrrroooolllleeee}}}} """";;;;
}}}}
pppprrrriiiinnnntttt """"}}}}\\\\nnnn"""";;;;
#### pppprrrriiiinnnntttt tttthhhheeee wwwwhhhhoooolllleeee tttthhhhiiiinnnngggg ssssoooommmmeeeewwwwhhhhaaaatttt ssssoooorrrrtttteeeedddd
ffffoooorrrreeeeaaaacccchhhh $$$$ffffaaaammmmiiiillllyyyy (((( ssssoooorrrrtttt kkkkeeeeyyyyssss %%%%HHHHooooHHHH )))) {{{{
pppprrrriiiinnnntttt """"$$$$ffffaaaammmmiiiillllyyyy:::: """";;;;
ffffoooorrrr $$$$rrrroooolllleeee (((( ssssoooorrrrtttt kkkkeeeeyyyyssss %%%%{{{{ $$$$HHHHooooHHHH{{{{$$$$ffffaaaammmmiiiillllyyyy}}}} }}}} {{{{
pppprrrriiiinnnntttt """"$$$$rrrroooolllleeee====$$$$HHHHooooHHHH{{{{$$$$ffffaaaammmmiiiillllyyyy}}}}{{{{$$$$rrrroooolllleeee}}}} """";;;;
}}}}
pppprrrriiiinnnntttt """"}}}}\\\\nnnn"""";;;;
#### pppprrrriiiinnnntttt tttthhhheeee wwwwhhhhoooolllleeee tttthhhhiiiinnnngggg ssssoooorrrrtttteeeedddd bbbbyyyy nnnnuuuummmmbbbbeeeerrrr ooooffff mmmmeeeemmmmbbbbeeeerrrrssss
ffffoooorrrreeeeaaaacccchhhh $$$$ffffaaaammmmiiiillllyyyy (((( ssssoooorrrrtttt {{{{ kkkkeeeeyyyyssss %%%%{{{{$$$$HHHHooooHHHH{{{{$$$$bbbb}}}}}}}} <<<<====>>>> kkkkeeeeyyyyssss %%%%{{{{$$$$HHHHooooHHHH{{{{$$$$bbbb}}}}}}}} }}}} kkkkeeeeyyyyssss %%%%HHHHooooHHHH )))) {{{{
pppprrrriiiinnnntttt """"$$$$ffffaaaammmmiiiillllyyyy:::: """";;;;
ffffoooorrrr $$$$rrrroooolllleeee (((( ssssoooorrrrtttt kkkkeeeeyyyyssss %%%%{{{{ $$$$HHHHooooHHHH{{{{$$$$ffffaaaammmmiiiillllyyyy}}}} }}}} {{{{
pppprrrriiiinnnntttt """"$$$$rrrroooolllleeee====$$$$HHHHooooHHHH{{{{$$$$ffffaaaammmmiiiillllyyyy}}}}{{{{$$$$rrrroooolllleeee}}}} """";;;;
}}}}
pppprrrriiiinnnntttt """"}}}}\\\\nnnn"""";;;;
#### eeeessssttttaaaabbbblllliiiisssshhhh aaaa ssssoooorrrrtttt oooorrrrddddeeeerrrr ((((rrrraaaannnnkkkk)))) ffffoooorrrr eeeeaaaacccchhhh rrrroooolllleeee
$$$$iiii ==== 0000;;;;
ffffoooorrrr (((( qqqqwwww((((lllleeeeaaaadddd wwwwiiiiffffeeee ssssoooonnnn ddddaaaauuuugggghhhhtttteeeerrrr ppppaaaallll ppppeeeetttt)))) )))) {{{{ $$$$rrrraaaannnnkkkk{{{{$$$$____}}}} ==== ++++++++$$$$iiii }}}}
#### nnnnoooowwww pppprrrriiiinnnntttt tttthhhheeee wwwwhhhhoooolllleeee tttthhhhiiiinnnngggg ssssoooorrrrtttteeeedddd bbbbyyyy nnnnuuuummmmbbbbeeeerrrr ooooffff mmmmeeeemmmmbbbbeeeerrrrssss
ffffoooorrrreeeeaaaacccchhhh $$$$ffffaaaammmmiiiillllyyyy (((( ssssoooorrrrtttt {{{{ kkkkeeeeyyyyssss %%%%{{{{$$$$HHHHooooHHHH{{{{$$$$bbbb}}}}}}}} <<<<====>>>> kkkkeeeeyyyyssss %%%%{{{{$$$$HHHHooooHHHH{{{{$$$$bbbb}}}}}}}} }}}} kkkkeeeeyyyyssss %%%%HHHHooooHHHH )))) {{{{
pppprrrriiiinnnntttt """"$$$$ffffaaaammmmiiiillllyyyy:::: """";;;;
#### aaaannnndddd pppprrrriiiinnnntttt tttthhhheeeesssseeee aaaaccccccccoooorrrrddddiiiinnnngggg ttttoooo rrrraaaannnnkkkk oooorrrrddddeeeerrrr
ffffoooorrrr $$$$rrrroooolllleeee (((( ssssoooorrrrtttt {{{{ $$$$rrrraaaannnnkkkk{{{{$$$$aaaa}}}} <<<<====>>>> $$$$rrrraaaannnnkkkk{{{{$$$$bbbb}}}} kkkkeeeeyyyyssss %%%%{{{{ $$$$HHHHooooHHHH{{{{$$$$ffffaaaammmmiiiillllyyyy}}}} }}}} {{{{
pppprrrriiiinnnntttt """"$$$$rrrroooolllleeee====$$$$HHHHooooHHHH{{{{$$$$ffffaaaammmmiiiillllyyyy}}}}{{{{$$$$rrrroooolllleeee}}}} """";;;;
}}}}
pppprrrriiiinnnntttt """"}}}}\\\\nnnn"""";;;;
MMMMOOOORRRREEEE EEEELLLLAAAABBBBOOOORRRRAAAATTTTEEEE RRRREEEECCCCOOOORRRRDDDDSSSS
DDDDeeeeccccllllaaaarrrraaaattttiiiioooonnnn ooooffff MMMMOOOORRRREEEE EEEELLLLAAAABBBBOOOORRRRAAAATTTTEEEE RRRREEEECCCCOOOORRRRDDDDSSSS
Here's a sample showing how to create and use a record
whose fields are of many different sorts:
30/Jan/96 perl 5.002 with 13
PERLDSC(1) User Contributed Perl Documentation PERLDSC(1)
$$$$rrrreeeecccc ==== {{{{
SSSSTTTTRRRRIIIINNNNGGGG ====>>>> $$$$ssssttttrrrriiiinnnngggg,,,,
LLLLIIIISSSSTTTT ====>>>> [[[[ @@@@oooolllldddd____vvvvaaaalllluuuueeeessss ]]]],,,,
LLLLOOOOOOOOKKKKUUUUPPPP ====>>>> {{{{ %%%%ssssoooommmmeeee____ttttaaaabbbblllleeee }}}},,,,
FFFFUUUUNNNNCCCC ====>>>> \\\\&&&&ssssoooommmmeeee____ffffuuuunnnnccccttttiiiioooonnnn,,,,
FFFFAAAANNNNOOOONNNN ====>>>> ssssuuuubbbb {{{{ $$$$____[[[[0000]]]] ******** $$$$____[[[[1111]]]] }}}},,,,
FFFFHHHH ====>>>> \\\\****SSSSTTTTDDDDOOOOUUUUTTTT,,,,
}}}};;;;
pppprrrriiiinnnntttt $$$$rrrreeeecccc---->>>>{{{{SSSSTTTTRRRRIIIINNNNGGGG}}}};;;;
pppprrrriiiinnnntttt $$$$rrrreeeecccc---->>>>{{{{LLLLIIIISSSSTTTT}}}}[[[[0000]]]];;;;
$$$$llllaaaasssstttt ==== ppppoooopppp @@@@ {{{{ $$$$rrrreeeecccc---->>>>{{{{LLLLIIIISSSSTTTT}}}} }}}};;;;
pppprrrriiiinnnntttt $$$$rrrreeeecccc---->>>>{{{{LLLLOOOOOOOOKKKKUUUUPPPP}}}}{{{{""""kkkkeeeeyyyy""""}}}};;;;
(((($$$$ffffiiiirrrrsssstttt____kkkk,,,, $$$$ffffiiiirrrrsssstttt____vvvv)))) ==== eeeeaaaacccchhhh %%%%{{{{ $$$$rrrreeeecccc---->>>>{{{{LLLLOOOOOOOOKKKKUUUUPPPP}}}} }}}};;;;
$$$$aaaannnnsssswwwweeeerrrr ==== &&&&{{{{ $$$$rrrreeeecccc---->>>>{{{{FFFFUUUUNNNNCCCC}}}} }}}}(((($$$$aaaarrrrgggg))));;;;
$$$$aaaannnnsssswwwweeeerrrr ==== &&&&{{{{ $$$$rrrreeeecccc---->>>>{{{{FFFFAAAANNNNOOOONNNN}}}} }}}}(((($$$$aaaarrrrgggg1111,,,, $$$$aaaarrrrgggg2222))));;;;
#### ccccaaaarrrreeeeffffuuuullll ooooffff eeeexxxxttttrrrraaaa bbbblllloooocccckkkk bbbbrrrraaaacccceeeessss oooonnnn ffffhhhh rrrreeeeffff
pppprrrriiiinnnntttt {{{{ $$$$rrrreeeecccc---->>>>{{{{FFFFHHHH}}}} }}}} """"aaaa ssssttttrrrriiiinnnngggg\\\\nnnn"""";;;;
uuuusssseeee FFFFiiiilllleeeeHHHHaaaannnnddddlllleeee;;;;
$$$$rrrreeeecccc---->>>>{{{{FFFFHHHH}}}}---->>>>aaaauuuuttttoooofffflllluuuusssshhhh((((1111))));;;;
$$$$rrrreeeecccc---->>>>{{{{FFFFHHHH}}}}---->>>>pppprrrriiiinnnntttt(((("""" aaaa ssssttttrrrriiiinnnngggg\\\\nnnn""""))));;;;
DDDDeeeeccccllllaaaarrrraaaattttiiiioooonnnn ooooffff aaaa HHHHAAAASSSSHHHH OOOOFFFF CCCCOOOOMMMMPPPPLLLLEEEEXXXX RRRREEEECCCCOOOORRRRDDDDSSSS
%%%%TTTTVVVV ==== ((((
""""fffflllliiiinnnnttttssssttttoooonnnneeeessss"""" ====>>>> {{{{
sssseeeerrrriiiieeeessss ====>>>> """"fffflllliiiinnnnttttssssttttoooonnnneeeessss"""",,,,
nnnniiiigggghhhhttttssss ====>>>> [[[[ qqqqwwww((((mmmmoooonnnnddddaaaayyyy tttthhhhuuuurrrrssssddddaaaayyyy ffffrrrriiiiddddaaaayyyy)))) ]]]];;;;
mmmmeeeemmmmbbbbeeeerrrrssss ====>>>> [[[[
{{{{ nnnnaaaammmmeeee ====>>>> """"ffffrrrreeeedddd"""",,,, rrrroooolllleeee ====>>>> """"lllleeeeaaaadddd"""",,,, aaaaggggeeee ====>>>> 33336666,,,, }}}},,,,
{{{{ nnnnaaaammmmeeee ====>>>> """"wwwwiiiillllmmmmaaaa"""",,,, rrrroooolllleeee ====>>>> """"wwwwiiiiffffeeee"""",,,, aaaaggggeeee ====>>>> 33331111,,,, }}}},,,,
{{{{ nnnnaaaammmmeeee ====>>>> """"ppppeeeebbbbbbbblllleeeessss"""",,,, rrrroooolllleeee ====>>>> """"kkkkiiiidddd"""",,,, aaaaggggeeee ====>>>> 4444,,,, }}}},,,,
]]]],,,,
}}}},,,,
""""jjjjeeeettttssssoooonnnnssss"""" ====>>>> {{{{
sssseeeerrrriiiieeeessss ====>>>> """"jjjjeeeettttssssoooonnnnssss"""",,,,
nnnniiiigggghhhhttttssss ====>>>> [[[[ qqqqwwww((((wwwweeeeddddnnnneeeessssddddaaaayyyy ssssaaaattttuuuurrrrddddaaaayyyy)))) ]]]];;;;
mmmmeeeemmmmbbbbeeeerrrrssss ====>>>> [[[[
{{{{ nnnnaaaammmmeeee ====>>>> """"ggggeeeeoooorrrrggggeeee"""",,,, rrrroooolllleeee ====>>>> """"lllleeeeaaaadddd"""",,,, aaaaggggeeee ====>>>> 44441111,,,, }}}},,,,
{{{{ nnnnaaaammmmeeee ====>>>> """"jjjjaaaannnneeee"""",,,, rrrroooolllleeee ====>>>> """"wwwwiiiiffffeeee"""",,,, aaaaggggeeee ====>>>> 33339999,,,, }}}},,,,
{{{{ nnnnaaaammmmeeee ====>>>> """"eeeellllrrrrooooyyyy"""",,,, rrrroooolllleeee ====>>>> """"kkkkiiiidddd"""",,,, aaaaggggeeee ====>>>> 9999,,,, }}}},,,,
]]]],,,,
}}}},,,,
30/Jan/96 perl 5.002 with 14
PERLDSC(1) User Contributed Perl Documentation PERLDSC(1)
""""ssssiiiimmmmppppssssoooonnnnssss"""" ====>>>> {{{{
sssseeeerrrriiiieeeessss ====>>>> """"ssssiiiimmmmppppssssoooonnnnssss"""",,,,
nnnniiiigggghhhhttttssss ====>>>> [[[[ qqqqwwww((((mmmmoooonnnnddddaaaayyyy)))) ]]]];;;;
mmmmeeeemmmmbbbbeeeerrrrssss ====>>>> [[[[
{{{{ nnnnaaaammmmeeee ====>>>> """"hhhhoooommmmeeeerrrr"""",,,, rrrroooolllleeee ====>>>> """"lllleeeeaaaadddd"""",,,, aaaaggggeeee ====>>>> 33334444,,,, }}}},,,,
{{{{ nnnnaaaammmmeeee ====>>>> """"mmmmaaaarrrrggggeeee"""",,,, rrrroooolllleeee ====>>>> """"wwwwiiiiffffeeee"""",,,, aaaaggggeeee ====>>>> 33337777,,,, }}}},,,,
{{{{ nnnnaaaammmmeeee ====>>>> """"bbbbaaaarrrrtttt"""",,,, rrrroooolllleeee ====>>>> """"kkkkiiiidddd"""",,,, aaaaggggeeee ====>>>> 11111111,,,, }}}},,,,
]]]],,,,
}}}},,,,
))));;;;
GGGGeeeennnneeeerrrraaaattttiiiioooonnnn ooooffff aaaa HHHHAAAASSSSHHHH OOOOFFFF CCCCOOOOMMMMPPPPLLLLEEEEXXXX RRRREEEECCCCOOOORRRRDDDDSSSS
#### rrrreeeeaaaaddddiiiinnnngggg ffffrrrroooommmm ffffiiiilllleeee
#### tttthhhhiiiissss iiiissss mmmmoooosssstttt eeeeaaaassssiiiillllyyyy ddddoooonnnneeee bbbbyyyy hhhhaaaavvvviiiinnnngggg tttthhhheeee ffffiiiilllleeee iiiittttsssseeeellllffff bbbbeeee
#### iiiinnnn tttthhhheeee rrrraaaawwww ddddaaaattttaaaa ffffoooorrrrmmmmaaaatttt aaaassss sssshhhhoooowwwwnnnn aaaabbbboooovvvveeee.... ppppeeeerrrrllll iiiissss hhhhaaaappppppppyyyy
#### ttttoooo ppppaaaarrrrsssseeee ccccoooommmmpppplllleeeexxxx ddddaaaattttaaaassssttttrrrruuuuccccttttuuuurrrreeeessss iiiiffff ddddeeeeccccllllaaaarrrreeeedddd aaaassss ddddaaaattttaaaa,,,, ssssoooo
#### ssssoooommmmeeeettttiiiimmmmeeeessss iiiitttt''''ssss eeeeaaaassssiiiieeeesssstttt ttttoooo ddddoooo tttthhhhaaaatttt
#### hhhheeeerrrreeee''''ssss aaaa ppppiiiieeeecccceeee bbbbyyyy ppppiiiieeeecccceeee bbbbuuuuiiiilllldddd uuuupppp
$$$$rrrreeeecccc ==== {{{{}}}};;;;
$$$$rrrreeeecccc---->>>>{{{{sssseeeerrrriiiieeeessss}}}} ==== """"fffflllliiiinnnnttttssssttttoooonnnneeeessss"""";;;;
$$$$rrrreeeecccc---->>>>{{{{nnnniiiigggghhhhttttssss}}}} ==== [[[[ ffffiiiinnnndddd____ddddaaaayyyyssss(((()))) ]]]];;;;
@@@@mmmmeeeemmmmbbbbeeeerrrrssss ==== (((())));;;;
#### aaaassssssssuuuummmmeeee tttthhhhiiiissss ffffiiiilllleeee iiiinnnn ffffiiiieeeelllldddd====vvvvaaaalllluuuueeee ssssyyyynnnnttttaaaaxxxx
wwwwhhhhiiiilllleeee (((()))) {{{{
%%%%ffffiiiieeeellllddddssss ==== sssspppplllliiiitttt ////[[[[\\\\ssss====]]]]++++////;;;;
ppppuuuusssshhhh @@@@mmmmeeeemmmmbbbbeeeerrrrssss,,,, {{{{ %%%%ffffiiiieeeellllddddssss }}}};;;;
}}}}
$$$$rrrreeeecccc---->>>>{{{{mmmmeeeemmmmbbbbeeeerrrrssss}}}} ==== [[[[ @@@@mmmmeeeemmmmbbbbeeeerrrrssss ]]]];;;;
#### nnnnoooowwww rrrreeeemmmmeeeemmmmbbbbeeeerrrr tttthhhheeee wwwwhhhhoooolllleeee tttthhhhiiiinnnngggg
$$$$TTTTVVVV{{{{ $$$$rrrreeeecccc---->>>>{{{{sssseeeerrrriiiieeeessss}}}} }}}} ==== $$$$rrrreeeecccc;;;;
30/Jan/96 perl 5.002 with 15
PERLDSC(1) User Contributed Perl Documentation PERLDSC(1)
############################################################################################################################################################################################################################################
#### nnnnoooowwww,,,, yyyyoooouuuu mmmmiiiigggghhhhtttt wwwwaaaannnntttt ttttoooo mmmmaaaakkkkeeee iiiinnnntttteeeerrrreeeessssttttiiiinnnngggg eeeexxxxttttrrrraaaa ffffiiiieeeellllddddssss tttthhhhaaaatttt
#### iiiinnnncccclllluuuuddddeeee ppppooooiiiinnnntttteeeerrrrssss bbbbaaaacccckkkk iiiinnnnttttoooo tttthhhheeee ssssaaaammmmeeee ddddaaaattttaaaa ssssttttrrrruuuuccccttttuuuurrrreeee ssssoooo iiiiffff
#### cccchhhhaaaannnnggggeeee oooonnnneeee ppppiiiieeeecccceeee,,,, iiiitttt cccchhhhaaaannnnggggeeeessss eeeevvvveeeerrrryyyywwwwhhhheeeerrrreeee,,,, lllliiiikkkkeeee ffffoooorrrr eeeexxxxaaaammmmpppplllleeeessss
#### iiiiffff yyyyoooouuuu wwwwaaaannnntttteeeedddd aaaa {{{{kkkkiiiiddddssss}}}} ffffiiiieeeelllldddd tttthhhhaaaatttt wwwwaaaassss aaaannnn aaaarrrrrrrraaaayyyy rrrreeeeffffeeeerrrreeeennnncccceeee
#### ttttoooo aaaa lllliiiisssstttt ooooffff tttthhhheeee kkkkiiiiddddssss'''' rrrreeeeccccoooorrrrddddssss wwwwiiiitttthhhhoooouuuutttt hhhhaaaavvvviiiinnnngggg dddduuuupppplllliiiiccccaaaatttteeee
#### rrrreeeeccccoooorrrrddddssss aaaannnndddd tttthhhhuuuussss uuuuppppddddaaaatttteeee pppprrrroooobbbblllleeeemmmmssss....
############################################################################################################################################################################################################################################
ffffoooorrrreeeeaaaacccchhhh $$$$ffffaaaammmmiiiillllyyyy ((((kkkkeeeeyyyyssss %%%%TTTTVVVV)))) {{{{
$$$$rrrreeeecccc ==== $$$$TTTTVVVV{{{{$$$$ffffaaaammmmiiiillllyyyy}}}};;;; #### tttteeeemmmmpppp ppppooooiiiinnnntttteeeerrrr
@@@@kkkkiiiiddddssss ==== (((())));;;;
ffffoooorrrr $$$$ppppeeeerrrrssssoooonnnn (((( @@@@{{{{$$$$rrrreeeecccc---->>>>{{{{mmmmeeeemmmmbbbbeeeerrrrssss}}}}}}}} )))) {{{{
iiiiffff (((($$$$ppppeeeerrrrssssoooonnnn---->>>>{{{{rrrroooolllleeee}}}} ====~~~~ ////kkkkiiiidddd||||ssssoooonnnn||||ddddaaaauuuugggghhhhtttteeeerrrr////)))) {{{{
ppppuuuusssshhhh @@@@kkkkiiiiddddssss,,,, $$$$ppppeeeerrrrssssoooonnnn;;;;
}}}}
}}}}
#### RRRREEEEMMMMEEEEMMMMBBBBEEEERRRR:::: $$$$rrrreeeecccc aaaannnndddd $$$$TTTTVVVV{{{{$$$$ffffaaaammmmiiiillllyyyy}}}} ppppooooiiiinnnntttt ttttoooo ssssaaaammmmeeee ddddaaaattttaaaa!!!!!!!!
$$$$rrrreeeecccc---->>>>{{{{kkkkiiiiddddssss}}}} ==== [[[[ @@@@kkkkiiiiddddssss ]]]];;;;
}}}}
#### yyyyoooouuuu ccccooooppppiiiieeeedddd tttthhhheeee lllliiiisssstttt,,,, bbbbuuuutttt tttthhhheeee lllliiiisssstttt iiiittttsssseeeellllffff ccccoooonnnnttttaaaaiiiinnnnssss ppppooooiiiinnnntttteeeerrrrssss
#### ttttoooo uuuunnnnccccooooppppiiiieeeedddd oooobbbbjjjjeeeeccccttttssss.... tttthhhhiiiissss mmmmeeeeaaaannnnssss tttthhhhaaaatttt iiiiffff yyyyoooouuuu mmmmaaaakkkkeeee bbbbaaaarrrrtttt ggggeeeetttt
#### oooollllddddeeeerrrr vvvviiiiaaaa
$$$$TTTTVVVV{{{{ssssiiiimmmmppppssssoooonnnnssss}}}}{{{{kkkkiiiiddddssss}}}}[[[[0000]]]]{{{{aaaaggggeeee}}}}++++++++;;;;
#### tttthhhheeeennnn tttthhhhiiiissss wwwwoooouuuulllldddd aaaallllssssoooo cccchhhhaaaannnnggggeeee iiiinnnn
pppprrrriiiinnnntttt $$$$TTTTVVVV{{{{ssssiiiimmmmppppssssoooonnnnssss}}}}{{{{mmmmeeeemmmmbbbbeeeerrrrssss}}}}[[[[2222]]]]{{{{aaaaggggeeee}}}};;;;
#### bbbbeeeeccccaaaauuuusssseeee $$$$TTTTVVVV{{{{ssssiiiimmmmppppssssoooonnnnssss}}}}{{{{kkkkiiiiddddssss}}}}[[[[0000]]]] aaaannnndddd $$$$TTTTVVVV{{{{ssssiiiimmmmppppssssoooonnnnssss}}}}{{{{mmmmeeeemmmmbbbbeeeerrrrssss}}}}[[[[2222]]]]
#### bbbbooootttthhhh ppppooooiiiinnnntttt ttttoooo tttthhhheeee ssssaaaammmmeeee uuuunnnnddddeeeerrrrllllyyyyiiiinnnngggg aaaannnnoooonnnnyyyymmmmoooouuuussss hhhhaaaasssshhhh ttttaaaabbbblllleeee
#### pppprrrriiiinnnntttt tttthhhheeee wwwwhhhhoooolllleeee tttthhhhiiiinnnngggg
ffffoooorrrreeeeaaaacccchhhh $$$$ffffaaaammmmiiiillllyyyy (((( kkkkeeeeyyyyssss %%%%TTTTVVVV )))) {{{{
pppprrrriiiinnnntttt """"tttthhhheeee $$$$ffffaaaammmmiiiillllyyyy"""";;;;
pppprrrriiiinnnntttt """" iiiissss oooonnnn dddduuuurrrriiiinnnngggg @@@@{{{{ $$$$TTTTVVVV{{{{$$$$ffffaaaammmmiiiillllyyyy}}}}{{{{nnnniiiigggghhhhttttssss}}}} }}}}\\\\nnnn"""";;;;
pppprrrriiiinnnntttt """"iiiittttssss mmmmeeeemmmmbbbbeeeerrrrssss aaaarrrreeee::::\\\\nnnn"""";;;;
ffffoooorrrr $$$$wwwwhhhhoooo (((( @@@@{{{{ $$$$TTTTVVVV{{{{$$$$ffffaaaammmmiiiillllyyyy}}}}{{{{mmmmeeeemmmmbbbbeeeerrrrssss}}}} }}}} )))) {{{{
pppprrrriiiinnnntttt """" $$$$wwwwhhhhoooo---->>>>{{{{nnnnaaaammmmeeee}}}} (((($$$$wwwwhhhhoooo---->>>>{{{{rrrroooolllleeee}}}})))),,,, aaaaggggeeee $$$$wwwwhhhhoooo---->>>>{{{{aaaaggggeeee}}}}\\\\nnnn"""";;;;
}}}}
pppprrrriiiinnnntttt """"iiiitttt ttttuuuurrrrnnnnssss oooouuuutttt tttthhhhaaaatttt $$$$TTTTVVVV{{{{$$$$ffffaaaammmmiiiillllyyyy}}}}{{{{''''lllleeeeaaaadddd''''}}}} hhhhaaaassss """";;;;
pppprrrriiiinnnntttt ssssccccaaaallllaaaarrrr (((( @@@@{{{{ $$$$TTTTVVVV{{{{$$$$ffffaaaammmmiiiillllyyyy}}}}{{{{kkkkiiiiddddssss}}}} }}}} )))),,,, """" kkkkiiiiddddssss nnnnaaaammmmeeeedddd """";;;;
pppprrrriiiinnnntttt jjjjooooiiiinnnn (((("""",,,, """",,,, mmmmaaaapppp {{{{ $$$$____---->>>>{{{{nnnnaaaammmmeeee}}}} }}}} @@@@{{{{ $$$$TTTTVVVV{{{{$$$$ffffaaaammmmiiiillllyyyy}}}}{{{{kkkkiiiiddddssss}}}} }}}} ))));;;;
pppprrrriiiinnnntttt """"\\\\nnnn"""";;;;
}}}}
DDDDaaaattttaaaabbbbaaaasssseeee TTTTiiiieeeessss
You cannot easily tie a multilevel data structure (such as
a hash of hashes) to a dbm file. The first problem is
that all but GDBM and Berkeley DB have size limitations,
but beyond that, you also have problems with how
references are to be represented on disk. One
experimental module that does attempt to partially address
30/Jan/96 perl 5.002 with 16
PERLDSC(1) User Contributed Perl Documentation PERLDSC(1)
this need is the MLDBM module. Check your nearest CPAN
site as described in the _p_e_r_l_m_o_d manpage for source code
to MLDBM.
SSSSEEEEEEEE AAAALLLLSSSSOOOO
the _p_e_r_l_r_e_f manpage, the _p_e_r_l_l_o_l manpage, the _p_e_r_l_d_a_t_a
manpage, the _p_e_r_l_o_b_j manpage
AAAAUUUUTTTTHHHHOOOORRRR
Tom Christiansen <_t_c_h_r_i_s_t_@_p_e_r_l_._c_o_m>
Last update: Tue Dec 12 09:20:26 MST 1995
30/Jan/96 perl 5.002 with 17