<html><head></head><body><div style="color:#000; background-color:#fff; font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px"><div><span>I'd consider a Role or maybe a Util package&nbsp;with 'Exporter' depending on what the shared function is intended to do -jnap</span></div> <div class="qtdSeparateBR"><br><br></div><div class="yahoo_quoted" style="display: block;"> <div style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;"> <div style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;"> <div dir="ltr"><font size="2" face="Arial"> On Thursday, July 14, 2016 6:47 PM, "anthony.okusanya@usbank.com" &lt;anthony.okusanya@usbank.com&gt; wrote:<br></font></div>  <br><br> <div class="y_msg_container"><div id="yiv9392018278"><div><tt><font size="2">Put a subroutine in a separate place, where it can be
accessed / called, by<br clear="none">
whatever controllers need to use it?</font></tt>
<br clear="none"><font size="2" face="sans-serif">-------------------------------------------------------------------------------------</font>
<br clear="none"><font size="2" face="sans-serif">Why not put all your subroutines in
a Role &nbsp;and consume the role in your main application class.</font>
<br clear="none">
<br clear="none"><font size="2" face="sans-serif">Package Role::HelpUtils;</font>
<br clear="none"><font size="2" face="sans-serif">use Moose::Role;</font>
<br clear="none">
<br clear="none"><font size="2" face="sans-serif">sub redirect_to_action {</font>
<br clear="none"><font size="2" face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; my ($c,
$controller, $action, @params) =@_;</font>
<br clear="none"><font size="2" face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; $c-&gt;response-&gt;redirect($c-&gt;uri_for($c-&gt;controller($controller)-&gt;action_for($action),
@params));</font>
<br clear="none"><font size="2" face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; $c-&gt;detach;</font>
<br clear="none"><font size="2" face="sans-serif">}</font>
<br clear="none">
<br clear="none"><font size="2" face="sans-serif">1;</font>
<br clear="none">
<br clear="none"><font size="2" face="sans-serif">In your main app class, simply use the
role</font>
<br clear="none"><font size="2" face="sans-serif">package MyApp;</font>
<br clear="none"><font size="2" face="sans-serif">use Moose; </font>
<br clear="none"><font size="2" face="sans-serif">use Catalyst::Runtime ;</font>
<br clear="none"><font size="2" face="sans-serif"><b>with 'Role::HelpUtils';</b></font>
<br clear="none">
<br clear="none"><font size="2" face="sans-serif">You can then access the subroutines
using &nbsp;e.g $c-&gt;redirect_to_action()</font>
<br clear="none"><font size="2" face="sans-serif"><br clear="none">
<br clear="none">
<br clear="none">
Thanks<br clear="none">
<br clear="none">
Tony B. Okusanya</font>
<br clear="none">
<br clear="none">
<br clear="none">
<div class="yiv9392018278yqt9504350784" id="yiv9392018278yqtfd46723"><br clear="none"><font size="1" color="#5f5f5f" face="sans-serif">From: &nbsp; &nbsp; &nbsp;
&nbsp;</font><font size="1" face="sans-serif">"Andrew"
&lt;catalystgroup@unitedgames.co.uk&gt;</font>
<br clear="none"><font size="1" color="#5f5f5f" face="sans-serif">To: &nbsp; &nbsp; &nbsp;
&nbsp;</font><font size="1" face="sans-serif">"The elegant MVC
web framework" &lt;catalyst@lists.scsys.co.uk&gt;, </font>
<br clear="none"><font size="1" color="#5f5f5f" face="sans-serif">Date: &nbsp; &nbsp; &nbsp;
&nbsp;</font><font size="1" face="sans-serif">07/14/2016 05:59 PM</font>
<br clear="none"><font size="1" color="#5f5f5f" face="sans-serif">Subject: &nbsp; &nbsp;
&nbsp; &nbsp;</font><font size="1" face="sans-serif">Re: [Catalyst]
KISS - Base Subroutines.</font>
<br clear="none">
<hr noshade="">
<br clear="none">
<br clear="none">
<br clear="none"><tt><font size="2">Okay, no worries, I've done it now.<br clear="none">
<br clear="none">
Created a folder called CommonUse to exist alongside Controller, View,
and<br clear="none">
Model folders, and hold perl modules that are commonly used, =).<br clear="none">
<br clear="none">
Create a file in the folder.<br clear="none">
<br clear="none">
Put my subroutine in the file.<br clear="none">
<br clear="none">
Then in the controller I want to find the subroutine, where it normally<br clear="none">
says:<br clear="none">
BEGIN { extends 'Catalyst::Controller' }<br clear="none">
...I switch it to say:<br clear="none">
BEGIN { extends 'MyApp::CommonUse::File' }<br clear="none">
....where MyApp is the name of my app, and File is the name of the perl<br clear="none">
module file I created in the CommonUse folder.<br clear="none">
Then that controller can call the subroutine, and everything seems to work,<br clear="none">
=).<br clear="none">
<br clear="none">
I read online, you could also put subrountines inside of Myapp.pm within
the<br clear="none">
lib folder, and all controllers could access it. I did try that, however,
I<br clear="none">
couldn't get it working, so any pointers on that appreciated.<br clear="none">
<br clear="none">
Yours,<br clear="none">
Andrew.<br clear="none">
<br clear="none">
<br clear="none">
<br clear="none">
----- Original Message -----<br clear="none">
From: "Andrew" &lt;catalystgroup@unitedgames.co.uk&gt;<br clear="none">
To: "The elegant MVC web framework" &lt;catalyst@lists.scsys.co.uk&gt;<br clear="none">
Sent: Thursday, July 14, 2016 9:20 PM<br clear="none">
Subject: [Catalyst] KISS - Base Subroutines.<br clear="none">
<br clear="none">
<br clear="none">
Is there a keep it simple stupid answer to the following question:<br clear="none">
<br clear="none">
Put a subroutine in a separate place, where it can be accessed / called,
by<br clear="none">
whatever controllers need to use it?<br clear="none">
<br clear="none">
<br clear="none">
<br clear="none">
<br clear="none">
<br clear="none">
<br clear="none">
_______________________________________________<br clear="none">
List: Catalyst@lists.scsys.co.uk<br clear="none">
Listinfo: </font></tt><a rel="nofollow" shape="rect" target="_blank" href="http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst"><tt><font size="2">http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst</font></tt></a><tt><font size="2"><br clear="none">
Searchable archive: </font></tt><a rel="nofollow" shape="rect" target="_blank" href="http://www.mail-archive.com/catalyst@lists.scsys.co.uk/"><tt><font size="2">http://www.mail-archive.com/catalyst@lists.scsys.co.uk/</font></tt></a><tt><font size="2"><br clear="none">
Dev site: </font></tt><a rel="nofollow" shape="rect" target="_blank" href="http://dev.catalyst.perl.org/"><tt><font size="2">http://dev.catalyst.perl.org/</font></tt></a><tt><font size="2"><br clear="none">
<br clear="none">
<br clear="none">
_______________________________________________<br clear="none">
List: Catalyst@lists.scsys.co.uk<br clear="none">
Listinfo: </font></tt><a rel="nofollow" shape="rect" target="_blank" href="http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst"><tt><font size="2">http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst</font></tt></a><tt><font size="2"><br clear="none">
Searchable archive: </font></tt><a rel="nofollow" shape="rect" target="_blank" href="http://www.mail-archive.com/catalyst@lists.scsys.co.uk/"><tt><font size="2">http://www.mail-archive.com/catalyst@lists.scsys.co.uk/</font></tt></a><tt><font size="2"><br clear="none">
Dev site: </font></tt><a rel="nofollow" shape="rect" target="_blank" href="http://dev.catalyst.perl.org/"><tt><font size="2">http://dev.catalyst.perl.org/</font></tt></a></div><tt><font size="2"><br clear="none">
</font></tt>
<br clear="none"><br clear="none"><br clear="none">
U.S. BANCORP made the following annotations<br clear="none">---------------------------------------------------------------------<br clear="none">

<span style="font-family:Arial;">Electronic Privacy Notice. This e-mail, and any attachments, contains information that is, or may be, covered by electronic communications privacy laws, and is also confidential and proprietary in nature. If you are not the intended recipient, please be advised that you are legally prohibited from retaining, using, copying, distributing, or otherwise disclosing this information in any manner. Instead, please reply to the sender that you have received this communication in error, and then immediately delete it. Thank you in advance for your cooperation.</span><div class="yiv9392018278yqt9504350784" id="yiv9392018278yqtfd21029"><br clear="none">
<br clear="none">
---------------------------------------------------------------------</div></div></div><br><div class="yqt9504350784" id="yqtfd04102">_______________________________________________<br clear="none">List: <a shape="rect" ymailto="mailto:Catalyst@lists.scsys.co.uk" href="mailto:Catalyst@lists.scsys.co.uk">Catalyst@lists.scsys.co.uk</a><br clear="none">Listinfo: <a shape="rect" href="http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst" target="_blank">http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst</a><br clear="none">Searchable archive: <a shape="rect" href="http://www.mail-archive.com/catalyst@lists.scsys.co.uk/" target="_blank">http://www.mail-archive.com/catalyst@lists.scsys.co.uk/</a><br clear="none">Dev site: <a shape="rect" href="http://dev.catalyst.perl.org/" target="_blank">http://dev.catalyst.perl.org/</a><br clear="none"></div><br><br></div>  </div> </div>  </div></div></body></html>