.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "DBIx::Class::Helper::ResultClass::Tee 3pm" .TH DBIx::Class::Helper::ResultClass::Tee 3pm "2022-12-06" "perl v5.36.0" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" DBIx::Class::Helper::ResultClass::Tee \- Inflate to multiple result classes at the same time .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 5 \& my ($hashref, $obj) = $rs\->search(undef, { \& result_class => DBIx::Class::Helper::ResultClass::Tee\->new( \& inner_classes => [ \*(Aq::HRI\*(Aq, \*(AqMyApp::Schema::Result::User\*(Aq], \& ), \& })\->first\->@*; .Ve .PP (If you've never seen \f(CW\*(C`\->@*\*(C'\fR before, check out \&\*(L"Postfix-Dereference-Syntax\*(R" in perlref, added in Perl v5.20!) .SH "DESCRIPTION" .IX Header "DESCRIPTION" This result class has one obvious use case: when you have prefetched data and DBIx::Class::ResultClass::HashRefInflator is the simplest way to access all the data, but you still want to use some of the methods on your existing result class. .PP The other important \fIraison d'ĂȘtre\fR of this module is that it is an example of how to make a \*(L"parameterized\*(R" result class. It's almost a secret that DBIx::Class supports using objects to inflate results. This is an incredibly powerful feature that can be used to make consistent interfaces to do all kinds of things. .PP Once when I was at Micro Technology Services, Inc. I used it to efficiently do a \&\*(L"reverse synthetic, LIKE-ish join\*(R". The \*(L"relationship\*(R" was basically \&\f(CW\*(C`foreign.name =~ self.name\*(C'\fR, which cannot actually be done if you want to go from within the database, but if you are able to load the entire foreign table into memory this can be done on-demand, and cached within the result class for (in our case) the duration of a request. .SH "AUTHOR" .IX Header "AUTHOR" Arthur Axel \*(L"fREW\*(R" Schmidt .SH "COPYRIGHT AND LICENSE" .IX Header "COPYRIGHT AND LICENSE" This software is copyright (c) 2020 by Arthur Axel \*(L"fREW\*(R" Schmidt. .PP This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.