<div dir="ltr">A couple of nice modules that make it easy to create sets of commonly-used modules:<div><br></div><div>Import::Base, <a href="https://metacpan.org/pod/Import::Base">https://metacpan.org/pod/Import::Base</a></div><div>Import::Into, <a href="https://metacpan.org/pod/Import::Into">https://metacpan.org/pod/Import::Into</a></div><div><br></div><div>There's also a list of modules with similar functionality in the docs for Import::Base.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On 28 December 2015 at 16:38, William Carr <span dir="ltr"><<a href="mailto:bill@bottlenose-wine.com" target="_blank">bill@bottlenose-wine.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Thank you very much for this. I found these articles very helpful.<br>
<br>
Do you have any suggestions or design patterns for including commonly used modules?<br>
<br>
For example, how may I reduce the following without repeating myself?<br>
<br>
MyApp::Module1.pm<br>
use Dancer2;<br>
use Dancer2 appname => ‘myapp’;<br>
use Dancer2::Plugin::Ajax;<br>
<br>
MyApp::Module2.pm<br>
use Dancer2;<br>
use Dancer2 appname => ‘myapp’;<br>
use Dancer2::Plugin::Ajax;<br>
<br>
-Bill Carr<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
> On Dec 23, 2015, at 3:49 AM, Warren Young <<a href="mailto:wyml@etr-usa.com">wyml@etr-usa.com</a>> wrote:<br>
><br>
> I’ve just finished a touch-up pass on my series of articles on getting beyond the initial small-scale app design generated by “dancer -a app”.  They were to be part of the 2015 advent calendar, but for now, here are the current links:<br>
><br>
>   Part 1, modules:   <a href="https://goo.gl/SFn30N" rel="noreferrer" target="_blank">https://goo.gl/SFn30N</a><br>
>   Part 2, routes:    <a href="https://goo.gl/UfMqGo" rel="noreferrer" target="_blank">https://goo.gl/UfMqGo</a><br>
>   Part 3, views:     <a href="https://goo.gl/DN8xYO" rel="noreferrer" target="_blank">https://goo.gl/DN8xYO</a><br>
>   Part 4, front end: <a href="https://goo.gl/wlyOFB" rel="noreferrer" target="_blank">https://goo.gl/wlyOFB</a><br>
>   Part 5, REST API:  <a href="https://goo.gl/VbMI4P" rel="noreferrer" target="_blank">https://goo.gl/VbMI4P</a><br>
>   Part 6, reloader:  <a href="https://goo.gl/6AiiIm" rel="noreferrer" target="_blank">https://goo.gl/6AiiIm</a><br>
><br>
> (These are GitHub links, showing the current tip-of-master versions, shortened so they don’t break due to line wrapping.)<br>
><br>
> The major change is that I’ve replaced the context object idea with direct Dancer DSL calls.  I had poor justifications for this object, which I realized after watching Alexis Sukrieh’s 2015 conference video.<br>
><br>
> That in turn allowed me to drop a level of function calls, which makes the recommended design considerably cleaner.<br>
><br>
> I’ve also fixed up some UTF-8 problems, so you don’t get broken Latin-1 characters when viewing the articles in a web browser.  (They look fine on a UTF-8 terminal. :) )<br>
> _______________________________________________<br>
> dancer-users mailing list<br>
> <a href="mailto:dancer-users@dancer.pm">dancer-users@dancer.pm</a><br>
> <a href="http://lists.preshweb.co.uk/mailman/listinfo/dancer-users" rel="noreferrer" target="_blank">http://lists.preshweb.co.uk/mailman/listinfo/dancer-users</a><br>
<br>
_______________________________________________<br>
dancer-users mailing list<br>
<a href="mailto:dancer-users@dancer.pm">dancer-users@dancer.pm</a><br>
<a href="http://lists.preshweb.co.uk/mailman/listinfo/dancer-users" rel="noreferrer" target="_blank">http://lists.preshweb.co.uk/mailman/listinfo/dancer-users</a><br>
</div></div></blockquote></div><br></div>