exploiting the object index

[prev] [thread] [next] [Date index for 2005/05/31]

From: Hartmaier Alexander
Subject: exploiting the object index
Date: 15:24 on 31 May 2005
This is a MIME-formatted message.  If you see this text it means that your
E-mail software does not support MIME-formatted messages.

--=_pbote2.srv.dsh.at-31989-1117553094-0001-2
Content-Type: multipart/alternative;
	boundary="----=_NextPart_001_0265_01C56605.A7D65B80"


------=_NextPart_001_0265_01C56605.A7D65B80
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: 7bit

Hi list!

Another object index question right after the last one ;-)

 

I want to retrieve all objects of a class to avoid lots of
single-row-returning sql queries against the db.

e.g.:

my @cds = Music::CD->retrieve_all;

 

Then I want to lookup the object by a non-primary-key field which is also
unique.

e.g.:

my $obj = Music::CD->search($name);

 

Any ideas?

 

My first idea was to create a hash with 'name' as the key and the object
handle as value, but maybe there is a cdbi way to do this...

 

With kind regards

Alexander Hartmaier

 

T-Systems Austria GesmbH

Rennweg 97-99 1030 Wien

 

phone: +43 57057-4320

fax: +43 57057-95-4320

mobile: +43 676 8642 4320

mail: alexander.hartmaier@xxxxxxxxx.xx

internet: http://www.t-systems.at <http://www.t-systems.at/>; 

 

 


------=_NextPart_001_0265_01C56605.A7D65B80
Content-Type: text/html;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" =
xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:st1=3D"urn:schemas-microsoft-com:office:smarttags" =
xmlns=3D"http://www.w3.org/TR/REC-html40">;

<head>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Dus-ascii">
<meta name=3DGenerator content=3D"Microsoft Word 11 (filtered medium)">
<title>Briefvorlage</title>
<o:SmartTagType =
namespaceuri=3D"urn:schemas-microsoft-com:office:smarttags";
 name=3D"place"/>
<o:SmartTagType =
namespaceuri=3D"urn:schemas-microsoft-com:office:smarttags";
 name=3D"country-region"/>
<!--[if !mso]>
<style>
st1\:*{behavior:url(#default#ieooui) }
</style>
<![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
	{font-family:Wingdings;
	panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
	{font-family:TeleLogo;
	panose-1:0 0 0 0 0 0 0 0 0 0;}
@font-face
	{font-family:Tele-Antiqua;
	panose-1:0 0 0 0 0 0 0 0 0 0;}
@font-face
	{font-family:Tele-GroteskNor;
	panose-1:0 0 0 0 0 0 0 0 0 0;}
@font-face
	{font-family:Tele-GroteskFet;
	panose-1:0 0 0 0 0 0 0 0 0 0;}
@font-face
	{font-family:Tele-GroteskHal;
	panose-1:0 0 0 0 0 0 0 0 0 0;}
@font-face
	{font-family:Tele-GroteskUlt;
	panose-1:0 0 0 0 0 0 0 0 0 0;}
@font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin-top:0cm;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:7.1pt;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:Tele-GroteskNor;}
h1
	{margin-top:18.0pt;
	margin-right:0cm;
	margin-bottom:12.0pt;
	margin-left:41.1pt;
	text-indent:-34.0pt;
	page-break-after:avoid;
	mso-list:l4 level1 lfo1;
	font-size:20.0pt;
	font-family:Tele-GroteskFet;
	font-weight:normal;}
h2
	{margin-top:12.0pt;
	margin-right:0cm;
	margin-bottom:24.0pt;
	margin-left:52.45pt;
	text-indent:-45.35pt;
	page-break-after:avoid;
	mso-list:l4 level2 lfo1;
	font-size:18.0pt;
	font-family:Tele-GroteskFet;
	font-weight:normal;}
h3
	{margin-top:0cm;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:60.95pt;
	margin-bottom:.0001pt;
	text-indent:-53.85pt;
	page-break-after:avoid;
	mso-list:l4 level3 lfo1;
	font-size:16.0pt;
	font-family:Tele-GroteskFet;
	color:black;
	font-weight:normal;}
h4
	{margin-top:0cm;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:43.2pt;
	margin-bottom:.0001pt;
	text-indent:-43.2pt;
	page-break-after:avoid;
	mso-list:l4 level4 lfo1;
	font-size:14.0pt;
	font-family:Tele-GroteskFet;
	color:black;
	font-weight:normal;}
h5
	{margin-top:12.0pt;
	margin-right:0cm;
	margin-bottom:3.0pt;
	margin-left:50.4pt;
	text-indent:-50.4pt;
	mso-list:l4 level5 lfo1;
	font-size:14.0pt;
	font-family:Tele-GroteskHal;
	font-weight:normal;}
h6
	{margin-top:12.0pt;
	margin-right:0cm;
	margin-bottom:3.0pt;
	margin-left:57.6pt;
	text-indent:-57.6pt;
	mso-list:l4 level6 lfo1;
	font-size:12.0pt;
	font-family:Tele-GroteskFet;
	font-weight:normal;}
p.MsoHeading7, li.MsoHeading7, div.MsoHeading7
	{margin-top:12.0pt;
	margin-right:0cm;
	margin-bottom:3.0pt;
	margin-left:64.8pt;
	text-indent:-64.8pt;
	mso-list:l4 level7 lfo1;
	font-size:12.0pt;
	font-family:Tele-GroteskHal;}
p.MsoHeading8, li.MsoHeading8, div.MsoHeading8
	{margin-top:12.0pt;
	margin-right:0cm;
	margin-bottom:3.0pt;
	margin-left:72.0pt;
	text-indent:-72.0pt;
	mso-list:l4 level8 lfo1;
	font-size:12.0pt;
	font-family:Tele-GroteskNor;}
p.MsoHeading9, li.MsoHeading9, div.MsoHeading9
	{margin-top:12.0pt;
	margin-right:0cm;
	margin-bottom:3.0pt;
	margin-left:79.2pt;
	text-indent:-79.2pt;
	mso-list:l4 level9 lfo1;
	font-size:12.0pt;
	font-family:Tele-GroteskNor;}
p.MsoIndex1, li.MsoIndex1, div.MsoIndex1
	{margin-top:0cm;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:12.0pt;
	margin-bottom:.0001pt;
	text-indent:-12.0pt;
	font-size:12.0pt;
	font-family:Tele-GroteskNor;}
p.MsoToc1, li.MsoToc1, div.MsoToc1
	{margin-top:0cm;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:7.1pt;
	margin-bottom:.0001pt;
	font-size:14.0pt;
	font-family:Tele-GroteskNor;}
p.MsoToc2, li.MsoToc2, div.MsoToc2
	{margin-top:0cm;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:12.0pt;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:Tele-GroteskNor;}
p.MsoToc3, li.MsoToc3, div.MsoToc3
	{margin-top:0cm;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:24.0pt;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:Tele-GroteskNor;}
p.MsoToc4, li.MsoToc4, div.MsoToc4
	{margin-top:0cm;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:36.0pt;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:Tele-GroteskNor;}
p.MsoToc5, li.MsoToc5, div.MsoToc5
	{margin-top:0cm;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:48.0pt;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:Tele-GroteskNor;}
p.MsoToc6, li.MsoToc6, div.MsoToc6
	{margin-top:0cm;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:60.0pt;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:Tele-GroteskNor;}
p.MsoToc7, li.MsoToc7, div.MsoToc7
	{margin-top:0cm;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:72.0pt;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:Tele-GroteskNor;}
p.MsoToc8, li.MsoToc8, div.MsoToc8
	{margin-top:0cm;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:84.0pt;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:Tele-GroteskNor;}
p.MsoToc9, li.MsoToc9, div.MsoToc9
	{margin-top:0cm;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:96.0pt;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:Tele-GroteskNor;}
p.MsoHeader, li.MsoHeader, div.MsoHeader
	{margin-top:0cm;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:7.1pt;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:Tele-GroteskNor;}
p.MsoFooter, li.MsoFooter, div.MsoFooter
	{margin-top:0cm;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:7.1pt;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:Tele-GroteskNor;}
p.MsoIndexHeading, li.MsoIndexHeading, div.MsoIndexHeading
	{margin-top:0cm;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:7.1pt;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:Tele-GroteskUlt;
	font-weight:bold;}
p.MsoEnvelopeAddress, li.MsoEnvelopeAddress, div.MsoEnvelopeAddress
	{margin-top:0cm;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:.05pt;
	margin-bottom:.0001pt;
	mso-element:frame;
	font-size:12.0pt;
	font-family:Tele-GroteskNor;}
p.MsoEnvelopeReturn, li.MsoEnvelopeReturn, div.MsoEnvelopeReturn
	{margin-top:0cm;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:7.1pt;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:Tele-GroteskNor;}
span.MsoFootnoteReference
	{font-family:Tele-GroteskNor;
	vertical-align:super;}
span.MsoCommentReference
	{font-family:Tele-GroteskNor;}
span.MsoLineNumber
	{font-family:Tele-GroteskNor;}
span.MsoPageNumber
	{font-family:Tele-GroteskNor;}
span.MsoEndnoteReference
	{font-family:Tele-GroteskNor;
	vertical-align:super;}
p.MsoMacroText, li.MsoMacroText, div.MsoMacroText
	{margin-top:0cm;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:7.1pt;
	margin-bottom:.0001pt;
	font-size:10.0pt;
	font-family:Tele-GroteskNor;}
p.MsoToaHeading, li.MsoToaHeading, div.MsoToaHeading
	{margin-top:6.0pt;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:7.1pt;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:Tele-GroteskNor;}
p.MsoListBullet, li.MsoListBullet, div.MsoListBullet
	{margin-top:0cm;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:21.25pt;
	margin-bottom:.0001pt;
	text-indent:-21.25pt;
	mso-list:l3 level1 lfo2;
	mso-element:frame;
	font-size:12.0pt;
	font-family:Tele-GroteskNor;}
p.MsoListBullet2, li.MsoListBullet2, div.MsoListBullet2
	{margin-top:0cm;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:45.35pt;
	margin-bottom:.0001pt;
	text-indent:-21.25pt;
	mso-list:l5 level1 lfo3;
	font-size:12.0pt;
	font-family:Tele-GroteskNor;}
p.MsoListBullet3, li.MsoListBullet3, div.MsoListBullet3
	{margin-top:0cm;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:72.3pt;
	margin-bottom:.0001pt;
	text-indent:-24.1pt;
	mso-list:l2 level1 lfo4;
	font-size:12.0pt;
	font-family:Tele-GroteskNor;}
p.MsoListBullet4, li.MsoListBullet4, div.MsoListBullet4
	{margin-top:0cm;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:96.4pt;
	margin-bottom:.0001pt;
	text-indent:-24.1pt;
	mso-list:l1 level1 lfo5;
	font-size:12.0pt;
	font-family:Tele-GroteskNor;}
p.MsoListBullet5, li.MsoListBullet5, div.MsoListBullet5
	{margin-top:0cm;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:123.3pt;
	margin-bottom:.0001pt;
	text-indent:-24.05pt;
	mso-list:l0 level1 lfo6;
	font-size:12.0pt;
	font-family:Tele-GroteskNor;}
p.MsoTitle, li.MsoTitle, div.MsoTitle
	{margin-top:12.0pt;
	margin-right:0cm;
	margin-bottom:3.0pt;
	margin-left:7.1pt;
	text-align:center;
	font-size:22.0pt;
	font-family:Tele-Antiqua;
	color:gray;}
p.MsoMessageHeader, li.MsoMessageHeader, div.MsoMessageHeader
	{margin-top:0cm;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:2.0cm;
	margin-bottom:.0001pt;
	text-indent:-2.0cm;
	background:#CCCCCC;
	border:none;
	padding:0cm;
	font-size:12.0pt;
	font-family:Tele-GroteskNor;}
p.MsoSubtitle, li.MsoSubtitle, div.MsoSubtitle
	{margin-top:0cm;
	margin-right:0cm;
	margin-bottom:3.0pt;
	margin-left:7.1pt;
	text-align:center;
	font-size:12.0pt;
	font-family:Tele-GroteskHal;}
p.MsoBlockText, li.MsoBlockText, div.MsoBlockText
	{margin-top:0cm;
	margin-right:1.15pt;
	margin-bottom:0cm;
	margin-left:27.0pt;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:Tele-GroteskNor;}
a:link, span.MsoHyperlink
	{font-family:Tele-GroteskNor;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{font-family:Tele-GroteskNor;
	color:purple;
	text-decoration:underline;}
strong
	{font-family:Tele-GroteskFet;}
em
	{font-family:Tele-GroteskUlt;
	font-style:normal;}
p.MsoDocumentMap, li.MsoDocumentMap, div.MsoDocumentMap
	{margin-top:0cm;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:7.1pt;
	margin-bottom:.0001pt;
	background:navy;
	font-size:12.0pt;
	font-family:Tele-GroteskUlt;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
	{margin-top:0cm;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:7.1pt;
	margin-bottom:.0001pt;
	font-size:10.0pt;
	font-family:Tele-GroteskNor;}
p
	{margin-top:0cm;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:7.1pt;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:Tele-GroteskNor;}
acronym
	{font-family:Tele-GroteskNor;}
address
	{margin-top:0cm;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:7.1pt;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:Tele-GroteskNor;
	font-style:normal;
	text-decoration:underline;}
code
	{font-family:Tele-GroteskNor;}
dfn
	{font-family:Tele-GroteskNor;
	font-style:normal;}
samp
	{font-family:Tele-GroteskNor;}
tt
	{font-family:Tele-GroteskNor;}
span.E-MailFormatvorlage35
	{mso-style-type:personal-compose;
	font-family:Arial;
	color:windowtext;}
 /* Page Definitions */
 @page
	{mso-endnote-separator:url("cid:header.htm\@01C56605.A7C89FE0") es;
	=
mso-endnote-continuation-separator:url("cid:header.htm\@01C56605.A7C89FE0=
") ecs;}
@page Section1
	{size:595.3pt 841.9pt;
	margin:99.25pt 2.0cm 70.9pt 2.0cm;
	mso-footer:url("cid:header.htm\@01C56605.A7C89FE0") f1;}
div.Section1
	{page:Section1;}
 /* List Definitions */
 @list l0
	{mso-list-id:-128;
	mso-list-type:simple;
	mso-list-template-ids:-1158138250;}
@list l0:level1
	{mso-level-number-format:bullet;
	mso-level-style-link:"Aufz\00E4hlungszeichen 5";
	mso-level-text:\F06E;
	mso-level-tab-stop:123.3pt;
	mso-level-number-position:left;
	margin-left:123.3pt;
	text-indent:-24.05pt;
	mso-ansi-font-size:10.0pt;
	font-family:Wingdings;
	color:#FF0066;
	text-underline:#FF0066;}
@list l1
	{mso-list-id:-127;
	mso-list-type:simple;
	mso-list-template-ids:787791588;}
@list l1:level1
	{mso-level-number-format:bullet;
	mso-level-style-link:"Aufz\00E4hlungszeichen 4";
	mso-level-text:\F06E;
	mso-level-tab-stop:96.4pt;
	mso-level-number-position:left;
	margin-left:96.4pt;
	text-indent:-24.1pt;
	mso-ansi-font-size:10.0pt;
	font-family:Wingdings;
	color:#FF0066;
	text-underline:#FF0066;}
@list l2
	{mso-list-id:-126;
	mso-list-type:simple;
	mso-list-template-ids:-652344512;}
@list l2:level1
	{mso-level-number-format:bullet;
	mso-level-style-link:"Aufz\00E4hlungszeichen 3";
	mso-level-text:\F06E;
	mso-level-tab-stop:72.3pt;
	mso-level-number-position:left;
	margin-left:72.3pt;
	text-indent:-24.1pt;
	mso-ansi-font-size:10.0pt;
	font-family:Wingdings;
	color:#FF0066;
	text-underline:#FF0066;}
@list l3
	{mso-list-id:-119;
	mso-list-type:simple;
	mso-list-template-ids:1638926230;}
@list l3:level1
	{mso-level-number-format:bullet;
	mso-level-style-link:Aufz\00E4hlungszeichen;
	mso-level-text:\F06E;
	mso-level-tab-stop:21.25pt;
	mso-level-number-position:left;
	margin-left:21.25pt;
	text-indent:-21.25pt;
	mso-ansi-font-size:10.0pt;
	font-family:Wingdings;
	color:#FF0066;
	text-underline:#FF0066;}
@list l4
	{mso-list-id:1644121226;
	mso-list-template-ids:67567653;}
@list l4:level1
	{mso-level-style-link:"\00DCberschrift 1";
	mso-level-text:%1;
	mso-level-tab-stop:21.6pt;
	mso-level-number-position:left;
	margin-left:21.6pt;
	text-indent:-21.6pt;}
@list l4:level2
	{mso-level-style-link:"\00DCberschrift 2";
	mso-level-text:"%1\.%2";
	mso-level-tab-stop:28.8pt;
	mso-level-number-position:left;
	margin-left:28.8pt;
	text-indent:-28.8pt;}
@list l4:level3
	{mso-level-style-link:"\00DCberschrift 3";
	mso-level-text:"%1\.%2\.%3";
	mso-level-tab-stop:36.0pt;
	mso-level-number-position:left;
	margin-left:36.0pt;
	text-indent:-36.0pt;}
@list l4:level4
	{mso-level-style-link:"\00DCberschrift 4";
	mso-level-text:"%1\.%2\.%3\.%4";
	mso-level-tab-stop:43.2pt;
	mso-level-number-position:left;
	margin-left:43.2pt;
	text-indent:-43.2pt;}
@list l4:level5
	{mso-level-style-link:"\00DCberschrift 5";
	mso-level-text:"%1\.%2\.%3\.%4\.%5";
	mso-level-tab-stop:50.4pt;
	mso-level-number-position:left;
	margin-left:50.4pt;
	text-indent:-50.4pt;}
@list l4:level6
	{mso-level-style-link:"\00DCberschrift 6";
	mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6";
	mso-level-tab-stop:57.6pt;
	mso-level-number-position:left;
	margin-left:57.6pt;
	text-indent:-57.6pt;}
@list l4:level7
	{mso-level-style-link:"\00DCberschrift 7";
	mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7";
	mso-level-tab-stop:64.8pt;
	mso-level-number-position:left;
	margin-left:64.8pt;
	text-indent:-64.8pt;}
@list l4:level8
	{mso-level-style-link:"\00DCberschrift 8";
	mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8";
	mso-level-tab-stop:72.0pt;
	mso-level-number-position:left;
	margin-left:72.0pt;
	text-indent:-72.0pt;}
@list l4:level9
	{mso-level-style-link:"\00DCberschrift 9";
	mso-level-text:"%1\.%2\.%3\.%4\.%5\.%6\.%7\.%8\.%9";
	mso-level-tab-stop:79.2pt;
	mso-level-number-position:left;
	margin-left:79.2pt;
	text-indent:-79.2pt;}
@list l5
	{mso-list-id:1646740094;
	mso-list-type:hybrid;
	mso-list-template-ids:1671064250 -946445812 67567619 67567621 67567617 =
67567619 67567621 67567617 67567619 67567621;}
@list l5:level1
	{mso-level-number-format:bullet;
	mso-level-style-link:"Aufz&auml;hlungszeichen 2";
	mso-level-text:\F06E;
	mso-level-tab-stop:45.35pt;
	mso-level-number-position:left;
	margin-left:45.35pt;
	text-indent:-21.25pt;
	mso-ansi-font-size:10.0pt;
	font-family:Wingdings;
	color:#FF0066;
	text-underline:#FF0066;}
ol
	{margin-bottom:0cm;}
ul
	{margin-bottom:0cm;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext=3D"edit" spidmax=3D"2050" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext=3D"edit">
  <o:idmap v:ext=3D"edit" data=3D"1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=3DDE link=3Dblue vlink=3Dpurple>

<div class=3DSection1>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span lang=3DEN-GB =
style=3D'font-size:
10.0pt;font-family:Arial'>Hi list!<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span lang=3DEN-GB =
style=3D'font-size:
10.0pt;font-family:Arial'>Another object index question right after the =
last
one ;-)<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span lang=3DEN-GB =
style=3D'font-size:
10.0pt;font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span lang=3DEN-GB =
style=3D'font-size:
10.0pt;font-family:Arial'>I want to retrieve all objects of a class to =
avoid
lots of single-row-returning sql queries against the =
db.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span lang=3DEN-GB =
style=3D'font-size:
10.0pt;font-family:Arial'>e.g.:<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span lang=3DEN-GB =
style=3D'font-size:
10.0pt;font-family:Arial'>my @cds =3D =
Music::CD-&gt;retrieve_all;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span lang=3DEN-GB =
style=3D'font-size:
10.0pt;font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span lang=3DEN-GB =
style=3D'font-size:
10.0pt;font-family:Arial'>Then I want to lookup the object by a =
non-primary-key
field which is also unique.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span lang=3DEN-GB =
style=3D'font-size:
10.0pt;font-family:Arial'>e.g.:<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span lang=3DEN-GB =
style=3D'font-size:
10.0pt;font-family:Arial'>my $obj =3D =
Music::CD-&gt;search($name);<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span lang=3DEN-GB =
style=3D'font-size:
10.0pt;font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span lang=3DEN-GB =
style=3D'font-size:
10.0pt;font-family:Arial'>Any ideas?<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span lang=3DEN-GB =
style=3D'font-size:
10.0pt;font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span lang=3DEN-GB =
style=3D'font-size:
10.0pt;font-family:Arial'>My first idea was to create a hash with =
&#8216;name&#8217;
as the key and the object handle as value, but maybe there is a cdbi way =
to do
this...<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span lang=3DEN-GB =
style=3D'font-size:
10.0pt;font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<div>

<div>

<p><font size=3D2 face=3DArial><span lang=3DEN-GB =
style=3D'font-size:10.0pt;font-family:
Arial'>With kind regards<o:p></o:p></span></font></p>

<p><font size=3D2 face=3DArial><span lang=3DEN-GB =
style=3D'font-size:10.0pt;font-family:
Arial'>Alexander Hartmaier<o:p></o:p></span></font></p>

<p><font size=3D2 face=3DArial><span lang=3DEN-GB =
style=3D'font-size:10.0pt;font-family:
Arial'><o:p>&nbsp;</o:p></span></font></p>

<p><font size=3D2 face=3DArial><span lang=3DEN-GB =
style=3D'font-size:10.0pt;font-family:
Arial'>T-Systems <st1:country-region w:st=3D"on"><st1:place =
w:st=3D"on">Austria</st1:place></st1:country-region>
GesmbH<o:p></o:p></span></font></p>

<p><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;font-family:Arial'>Rennweg
97-99 1030 Wien<o:p></o:p></span></font></p>

<p><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;font-family:Arial'><o:p>&nbsp;</o:p></span></fo=
nt></p>

<p><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;font-family:Arial'>phone:
+43 57057-4320<o:p></o:p></span></font></p>

<p><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;font-family:Arial'>fax:
+43 57057-95-4320<o:p></o:p></span></font></p>

<p><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;font-family:Arial'>mobile:
+43 676 8642 4320<o:p></o:p></span></font></p>

<p><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;font-family:Arial'>mail:
alexander.hartmaier@xxxxxxxxx.xx<o:p></o:p></span></font></p>

<p><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;font-family:Arial'>internet:
<a =
href=3D"http://www.t-systems.at/">http://www.t-systems.at</a><o:p></o:p><=
/span></font></p>

</div>

</div>

<p><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;font-family:Arial'><o:p>&nbsp;</o:p></span></fo=
nt></p>

<p class=3DMsoNormal style=3D'margin-left:0cm'><font size=3D3 =
face=3DTele-GroteskNor><span
lang=3DDE-AT =
style=3D'font-size:12.0pt'><o:p>&nbsp;</o:p></span></font></p>

</div>

</body>

</html>

------=_NextPart_001_0265_01C56605.A7D65B80--

--=_pbote2.srv.dsh.at-31989-1117553094-0001-2
Content-Type: application/x-pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename="smime.p7s"

MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIISkjCCApow
ggIDoAMCAQICASQwDQYJKoZIhvcNAQEEBQAwcTELMAkGA1UEBhMCREUxHDAaBgNVBAoTE0RldXRz
Y2hlIFRlbGVrb20gQUcxHzAdBgNVBAsTFlQtVGVsZVNlYyBUcnVzdCBDZW50ZXIxIzAhBgNVBAMT
GkRldXRzY2hlIFRlbGVrb20gUm9vdCBDQSAxMB4XDTk5MDcwOTExMzQwMFoXDTE5MDcwOTIzNTkw
MFowcTELMAkGA1UEBhMCREUxHDAaBgNVBAoTE0RldXRzY2hlIFRlbGVrb20gQUcxHzAdBgNVBAsT
FlQtVGVsZVNlYyBUcnVzdCBDZW50ZXIxIzAhBgNVBAMTGkRldXRzY2hlIFRlbGVrb20gUm9vdCBD
QSAxMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDQ3ZsMoBdERA+vIUBzZ1bwPmloEbrZN/KB
rsMkrGmhzfymGFVW/4ufMsHb53gsOdtggUGl79PNgI0YPOJSDAuf92Se5aDwuGFi9L/go9pYK/0V
BGu9Op58nfI92OSVw+xOwvFlqwxL7EeCW+LhUHXY9mG0GFztM6BLHoP7T4S8eQIDAQABo0IwQDAd
BgNVHQ4EFgQUFDHif5zKEpX78XAg200oE3FCYcYwDwYDVR0TBAgwBgEB/wIBBTAOBgNVHQ8BAf8E
BAMCAQYwDQYJKoZIhvcNAQEEBQADgYEAnR0Q+pPIHWQgRV6cbwVto1J/p6iHZbNnmjaGeHIWFf/X
RXMoAYaInZHq3tYpCww+o5l0QAzM7BDgZPxwtro5EifyXgBQtQvWSt+pb/SzCSiA/NIexOxwRoVM
3kWwAZU4rBafRkruLcu9y2WxOuWmSwRLDjP/HHvIhIRH4VpkRkowggTdMIIERqADAgECAgIAnTAN
BgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBB
RzEfMB0GA1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVs
ZWtvbSBSb290IENBIDEwHhcNMDQwNjI0MDUzODAwWhcNMTAwNjI0MjM1OTAwWjB6MQswCQYDVQQG
EwJERTElMCMGA1UEChMcVC1TeXN0ZW1zIEludGVybmF0aW9uYWwgR21iSDElMCMGA1UECxMcVC1T
eXN0ZW1zIEludGVybmF0aW9uYWwgR21iSDEdMBsGA1UEAxMUVC1TeXN0ZW1zIENvbXBhbnkgQ0Ew
ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC+ooSiyo46KcYIAAJzfHHnXVHzuFUtMTiG
n5+TIKzga38S/sRAj6vPSn1AcoUEW1LZ+CFvdNJgmUouVyZ1siE1DJNH1N1URl5CunNTNMvAFDxj
Cc1GQ6QXpxi7W4cTkF3Cj95eUb8Ux4efTVpeaoV2/Zazw3hVLGRnkcBTVdkED6fjn/UDmDc8i9Mc
Sg4Yr+n4DkZ4mCz3jVZZeIScnI2YzDeNKDRajnygJlve5hY23mqaBLscDzFFntGe6yswp7D6pSDa
108/8a8HySUKGZ1weC3BDgaMLjPz4pcXjtkvleyxWH5BIQo1tlbtXwigqJN+zhxdbsi8b5IY6ko5
sp+jAgMBAAGjggH1MIIB8TB1BgNVHSAEbjBsMGoGCSsGAQQBvUcNEDBdMFsGCCsGAQUFBwIBFk9o
dHRwOi8va3J5cFRTSS50ZWxlc2VjLmRlL2NnaS1iaW4vY2FzZXJ2aWNlL2tyeXBUU0kvRG93bmxv
YWRQREYva3J5cFRTSS1DUFMucGRmMIIBEgYDVR0fBIIBCTCCAQUwXqBcoFqGWGh0dHA6Ly9rcnlw
VFNJLnRlbGVzZWMuZGUvY2dpLWJpbi9jYXNlcnZpY2Uva3J5cFRTSS9hZl9Eb3dubG9hZEFSTC5j
cmw/LWNybF9mb3JtYXQ9WF81MDkwgaKggZ+ggZyGgZlsZGFwOi8vbGRhcC1rcnlwVFNJLnRlbGVz
ZWMuZGUvY249RGV1dHNjaGUlMjBUZWxla29tJTIwUm9vdCUyMENBJTIwMSxvdT1ULVRlbGVTZWMl
MjBUcnVzdCUyMENlbnRlcixvPURldXRzY2hlJTIwVGVsZWtvbSUyMEFHLGM9REU/QXV0aG9yaXR5
UmV2b2NhdGlvbkxpc3QwHQYDVR0OBBYEFGKQKoiCJcPJVuPjvloUpjQ+jwYvMB8GA1UdIwQYMBaA
FBQx4n+cyhKV+/FwINtNKBNxQmHGMA4GA1UdDwEB/wQEAwIBhjASBgNVHRMBAf8ECDAGAQH/AgED
MA0GCSqGSIb3DQEBBQUAA4GBAK2TIG0uoRyvzq/3CUalvZOFSnUz6oDrX5fa6r1Fdh8ODa0zOCzr
qbLQRLZVErwH9qxuC6qxby57Ek1qpwI8TuuhFnMA9ISrkEUJjgxAIe6at2NdQ6bowZG9McwGmcsU
yiCwyipt70V3VHFW2cVHmMsEitGx5PsgfhUiGi+Ufst1MIIFhTCCBG2gAwIBAgICRxYwDQYJKoZI
hvcNAQEFBQAwejELMAkGA1UEBhMCREUxJTAjBgNVBAoTHFQtU3lzdGVtcyBJbnRlcm5hdGlvbmFs
IEdtYkgxJTAjBgNVBAsTHFQtU3lzdGVtcyBJbnRlcm5hdGlvbmFsIEdtYkgxHTAbBgNVBAMTFFQt
U3lzdGVtcyBDb21wYW55IENBMB4XDTA1MDQxMTA5MjgyNFoXDTA4MDQxMTIzNTkwMFowgdgxCzAJ
BgNVBAYTAkFUMSUwIwYDVQQKExxULVN5c3RlbXMgSW50ZXJuYXRpb25hbCBHbWJIMRAwDgYDVQQL
EwdhdXN0cmlhMSEwHwYDVQQLExhDRUUtQVQtVklFLUVNLTAxLmF1c3RyaWExGjAYBgNVBAsTEVQt
U3lzdGVtcyBBdXN0cmlhMR8wHQYDVQQDExZIYXJ0bWFpZXIgQWxleGFuZGVyIDAxMTAwLgYJKoZI
hvcNAQkBFiFBbGV4YW5kZXIuSGFydG1haWVyQHQtc3lzdGVtcy5jb20wgZ8wDQYJKoZIhvcNAQEB
BQADgY0AMIGJAoGBANo+1hFHTw2SivsA2RxpYFAwSULIFXhagYoguyrIefoxYL/SYfIUoKFejDMg
bX/J4ZSkfdta2rH4TapDDpnFJhkRTsJ4yi8i03PtfsqJmtzqFedRsQta0t0YWBMskNhlXveT1Wqh
jjDJsV8c+dxf1KZltYnPMvpJU46Gu0kKTa1tAgMBAAGjggI4MIICNDAfBgNVHSMEGDAWgBRikCqI
giXDyVbj475aFKY0Po8GLzAOBgNVHQ8BAf8EBAMCBSAwHQYDVR0OBBYEFDWHeGOuGCPJFrZOxI+l
io66rv6wMHUGA1UdIARuMGwwagYJKwYBBAG9Rw0QMF0wWwYIKwYBBQUHAgEWT2h0dHA6Ly9rcnlw
dHNpLnRlbGVzZWMuZGUvY2dpLWJpbi9jYXNlcnZpY2Uva3J5cFRTSS9Eb3dubG9hZFBERi9rcnlw
VFNJLUNQUy5wZGYwTgYDVR0RBEcwRYEgQWxleGFuZGVyLkhhcnRtYWllckB0LXN5c3RlbXMuYXSB
IUFsZXhhbmRlci5IYXJ0bWFpZXJAdC1zeXN0ZW1zLmNvbTCCARkGA1UdHwSCARAwggEMMF6gXKBa
hlhodHRwOi8va3J5cHRzaS50ZWxlc2VjLmRlL2NnaS1iaW4vY2FzZXJ2aWNlL2tyeXBUU0kvYWZf
RG93bmxvYWRDUkwuY3JsPy1jcmxfZm9ybWF0PVhfNTA5MIGpoIGmoIGjhoGgbGRhcDovL2xkYXAt
a3J5cFRTSS50ZWxlc2VjLmRlL2NuPVQtU3lzdGVtcyUyMENvbXBhbnklMjBDQSxvdT1ULVN5c3Rl
bXMlMjBJbnRlcm5hdGlvbmFsJTIwR21iSCxvPVQtU3lzdGVtcyUyMEludGVybmF0aW9uYWwlMjBH
bWJILGM9REU/Q2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdDANBgkqhkiG9w0BAQUFAAOCAQEAFZCu
YmsdsJQWyEK8286QMCcYytKL6eKzZnm7isDcYmWKr3F1MqV/CsyfQQ0pGC0ACdjw/uWGgtrLsN9X
hYDiO4maoicRgMO7cPR4b5YGHfwC7VYxn0DLCBqx34oBRB90LCGK3Es4cZ5Wo+c5mLAcvJ+IzFnB
BgwDWU3+tXcZe5qzLUb2KSNT4WM4ysaVAwBYtGHgU+5wbPrOD0yYFoyi3rgEU2K63SIymvewOD14
wGX7KaWnJLBrSlbkPYoQxDfKPOxb3sTmVjK5eql8zDoiFc7hETorlQprijNVDmsYPYnFVECUXASQ
HnlQZ1IlT0iXQiZdNmeGUKkOQHl/BeqXxTCCBYYwggRuoAMCAQICAkcVMA0GCSqGSIb3DQEBBQUA
MHoxCzAJBgNVBAYTAkRFMSUwIwYDVQQKExxULVN5c3RlbXMgSW50ZXJuYXRpb25hbCBHbWJIMSUw
IwYDVQQLExxULVN5c3RlbXMgSW50ZXJuYXRpb25hbCBHbWJIMR0wGwYDVQQDExRULVN5c3RlbXMg
Q29tcGFueSBDQTAeFw0wNTA0MTEwOTI4MTJaFw0wODA0MTEyMzU5MDBaMIHYMQswCQYDVQQGEwJB
VDElMCMGA1UEChMcVC1TeXN0ZW1zIEludGVybmF0aW9uYWwgR21iSDEQMA4GA1UECxMHYXVzdHJp
YTEhMB8GA1UECxMYQ0VFLUFULVZJRS1FTS0wMS5hdXN0cmlhMRowGAYDVQQLExFULVN5c3RlbXMg
QXVzdHJpYTEfMB0GA1UEAxMWSGFydG1haWVyIEFsZXhhbmRlciAwMTEwMC4GCSqGSIb3DQEJARYh
QWxleGFuZGVyLkhhcnRtYWllckB0LXN5c3RlbXMuY29tMIGgMA0GCSqGSIb3DQEBAQUAA4GOADCB
igKBgQCBzuPPhyIz16V/u41Cg8eOEyzCnjTQ2/+XUX76CzSLryHuJHGhjtea14ycDshjC41ZCkLH
avKr909LrQgaPS1BeF3tja9XwJ7u+I8bIFiS+J0AKP2oyp76SpuBzS0ubrOckZgzSiTQHscRnkvb
2SYfyI2d3gD85xo8DQqGSigrVQIEQAAAgaOCAjgwggI0MB8GA1UdIwQYMBaAFGKQKoiCJcPJVuPj
vloUpjQ+jwYvMA4GA1UdDwEB/wQEAwIHgDAdBgNVHQ4EFgQUsiPXp43D6udRc2hzEc18bO7I4pYw
dQYDVR0gBG4wbDBqBgkrBgEEAb1HDRAwXTBbBggrBgEFBQcCARZPaHR0cDovL2tyeXB0c2kudGVs
ZXNlYy5kZS9jZ2ktYmluL2Nhc2VydmljZS9rcnlwVFNJL0Rvd25sb2FkUERGL2tyeXBUU0ktQ1BT
LnBkZjBOBgNVHREERzBFgSBBbGV4YW5kZXIuSGFydG1haWVyQHQtc3lzdGVtcy5hdIEhQWxleGFu
ZGVyLkhhcnRtYWllckB0LXN5c3RlbXMuY29tMIIBGQYDVR0fBIIBEDCCAQwwXqBcoFqGWGh0dHA6
Ly9rcnlwdHNpLnRlbGVzZWMuZGUvY2dpLWJpbi9jYXNlcnZpY2Uva3J5cFRTSS9hZl9Eb3dubG9h
ZENSTC5jcmw/LWNybF9mb3JtYXQ9WF81MDkwgamggaaggaOGgaBsZGFwOi8vbGRhcC1rcnlwVFNJ
LnRlbGVzZWMuZGUvY249VC1TeXN0ZW1zJTIwQ29tcGFueSUyMENBLG91PVQtU3lzdGVtcyUyMElu
dGVybmF0aW9uYWwlMjBHbWJILG89VC1TeXN0ZW1zJTIwSW50ZXJuYXRpb25hbCUyMEdtYkgsYz1E
RT9DZXJ0aWZpY2F0ZVJldm9jYXRpb25MaXN0MA0GCSqGSIb3DQEBBQUAA4IBAQAouXnAG7+LMP/3
urannW0DO4j1n6Hvqt8G+MkxisUkSr41aLK10uen0S/+iyLIhhgUC1mag5vVS/Gkzevsi9K3qcSf
wIIBWwdrJKJ+WifbcNuS2YexMKLuBtVe/l6ydHMGtcZ3SQykxAoWYEmhPSpNxgfMUYATDJOZs7bH
l7WNy/43ZgKbsl9BhCNVCro0dC9berFgc1gAZ2O42D3M7TQB3Hqx68iLoYpvmPgMWiQJ6H6C0h/3
fzamxuB+L1DfMSnnOmJvdftpJjZmnORigvfCuMLxkjPbDESLEJtmw3oROemRMFR1oAIYf9qrexiT
a6TVsQzMVnsuQgoZ+dqaFCLbMYIC2DCCAtQCAQEwgYAwejELMAkGA1UEBhMCREUxJTAjBgNVBAoT
HFQtU3lzdGVtcyBJbnRlcm5hdGlvbmFsIEdtYkgxJTAjBgNVBAsTHFQtU3lzdGVtcyBJbnRlcm5h
dGlvbmFsIEdtYkgxHTAbBgNVBAMTFFQtU3lzdGVtcyBDb21wYW55IENBAgJHFTAJBgUrDgMCGgUA
oIIBrTAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0wNTA1MzExNTI0
NTJaMCMGCSqGSIb3DQEJBDEWBBStvxCIdnJ3YEl2hWCI2OFPiqLOJDAkBgkqhkiG9w0BCQ8xFzAV
MAoGCCqGSIb3DQMHMAcGBSsOAwIaMIGRBgkrBgEEAYI3EAQxgYMwgYAwejELMAkGA1UEBhMCREUx
JTAjBgNVBAoTHFQtU3lzdGVtcyBJbnRlcm5hdGlvbmFsIEdtYkgxJTAjBgNVBAsTHFQtU3lzdGVt
cyBJbnRlcm5hdGlvbmFsIEdtYkgxHTAbBgNVBAMTFFQtU3lzdGVtcyBDb21wYW55IENBAgJHFjCB
kwYLKoZIhvcNAQkQAgsxgYOggYAwejELMAkGA1UEBhMCREUxJTAjBgNVBAoTHFQtU3lzdGVtcyBJ
bnRlcm5hdGlvbmFsIEdtYkgxJTAjBgNVBAsTHFQtU3lzdGVtcyBJbnRlcm5hdGlvbmFsIEdtYkgx
HTAbBgNVBAMTFFQtU3lzdGVtcyBDb21wYW55IENBAgJHFjANBgkqhkiG9w0BAQEFAASBgDwwQJKi
1TbD0kZFEe3Pr9i4/Sm9Zt4mw69Fv1+AQu9Zc63jsex6TalClzkABirCGFRH3JKSPLTCFkgA7h6D
JwmoLb85j7N6r4O80L3KYt1XZfmd9pQV7p9ZVBQbH87LVx11nLs4bPz6mG19aGAKgrDt7wrmedqn
8lIUHXTcQ8kbAAAAAAAA

--=_pbote2.srv.dsh.at-31989-1117553094-0001-2--

exploiting the object index
Hartmaier Alexander 15:24 on 31 May 2005

Re: exploiting the object index
Tony Bowden 15:28 on 31 May 2005

Re: exploiting the object index
Cees Hek 15:36 on 31 May 2005

Re: exploiting the object index
Hartmaier Alexander 15:44 on 31 May 2005

Generated at 16:37 on 28 Jul 2005 by mariachi v0.52