<div dir="ltr">Thanks for your reply.<div class="gmail_extra"><br><div class="gmail_quote">On Thu, May 4, 2017 at 5:56 PM, John Wiersba <span dir="ltr"><<a href="mailto:jrw32982@yahoo.com" target="_blank">jrw32982@yahoo.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div><div style="color:rgb(0,0,0);background-color:rgb(255,255,255);font-family:'helvetica neue',helvetica,arial,'lucida grande',sans-serif;font-size:13px"><div id="gmail-m_-8425935437304842120yui_3_16_0_ym19_1_1493920506048_25121">Partly, it depends on the target environment you're going to deploy to and how much control you have over that.</div><div id="gmail-m_-8425935437304842120yui_3_16_0_ym19_1_1493920506048_25120">How many different servers are we talking about in all?  What OS and system perl version are they running?  MS Windows?<br></div><div id="gmail-m_-8425935437304842120yui_3_16_0_ym19_1_1493920506048_25119">Can you easily install the modules you want on those servers?  Binary (xs) modules or pure perl?  <br></div><div id="gmail-m_-8425935437304842120yui_3_16_0_ym19_1_1493920506048_25629"></div></div></div></blockquote><div><br></div><div>I think I can get away with only UNIX-like OSes: a mix of Mac OS X on the desktop and GNU/Linux on the server. (We have a few people on Windows, but they have Ubuntu either via VM or the new Ubuntu-on-Windows.)</div><div><br></div><div>I’m not using any particularly new features, so I can live with the built-in 5.18 from OS X 10.11 El Capitan. I do understand that that limits me to Modern Perl 2014; if that becomes an issue, I’ll build my own.</div><div><br></div><div>All the modules I’ve used thus far are pure Perl (non-XS), and I should be able to convince IT to install them on the server.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div><div style="color:rgb(0,0,0);background-color:rgb(255,255,255);font-family:'helvetica neue',helvetica,arial,'lucida grande',sans-serif;font-size:13px"><div id="gmail-m_-8425935437304842120yui_3_16_0_ym19_1_1493920506048_25629">Presumably you'd want to install those modules to be local to a user acct (local::lib), rather than into the system perl itself.<br></div><div id="gmail-m_-8425935437304842120yui_3_16_0_ym19_1_1493920506048_25118"></div></div></div></blockquote><div><br></div><div>I use cpanm <<a href="https://github.com/miyagawa/cpanminus">https://github.com/miyagawa/cpanminus</a>> to install them with the --local-lib flag.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div><div style="color:rgb(0,0,0);background-color:rgb(255,255,255);font-family:'helvetica neue',helvetica,arial,'lucida grande',sans-serif;font-size:13px"><div id="gmail-m_-8425935437304842120yui_3_16_0_ym19_1_1493920506048_25118">Do you want/need to create a local perl environment (your own compiled perl, rather than the system perl; perlbrew, plenv)?</div></div></div></blockquote><div> </div><div>This is a good question. So far I’ve done with the system version, not keeping up with the latest and greatest features. If necessary, I could probably get a newer version installed.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div><div style="color:rgb(0,0,0);background-color:rgb(255,255,255);font-family:'helvetica neue',helvetica,arial,'lucida grande',sans-serif;font-size:13px"><div id="gmail-m_-8425935437304842120yui_3_16_0_ym19_1_1493920506048_25117"></div><div id="gmail-m_-8425935437304842120yui_3_16_0_ym19_1_1493920506048_25016">The answers to the above questions may have a large influence on the approach you take.  For small-medium sized scripts on large numbers of diverse servers, sticking with the core modules (e.g. Getopt::Std, Getopt::Long) and pure perl may be just fine.  If you need binary modules, you'll have to take a more complicated approach.<br></div><div id="gmail-m_-8425935437304842120yui_3_16_0_ym19_1_1493920506048_25018"><br></div><div id="gmail-m_-8425935437304842120yui_3_16_0_ym19_1_1493920506048_25015">In any case, warnings/strict is a must in production code.  Hash-based native objects are fine for smaller projects.</div><div id="gmail-m_-8425935437304842120yui_3_16_0_ym19_1_1493920506048_25907">If you're going modern, then Moose.</div></div></div></blockquote><div><br></div><div>Thanks again! </div><div>Harold</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div><div style="color:rgb(0,0,0);background-color:rgb(255,255,255);font-family:'helvetica neue',helvetica,arial,'lucida grande',sans-serif;font-size:13px"><div id="gmail-m_-8425935437304842120yui_3_16_0_ym19_1_1493920506048_25014"></div><div class="gmail-m_-8425935437304842120qtdSeparateBR"><br></div><div class="gmail-m_-8425935437304842120yahoo_quoted" id="gmail-m_-8425935437304842120yui_3_16_0_ym19_1_1493920506048_24795" style="display:block">  <div style="font-family:'helvetica neue',helvetica,arial,'lucida grande',sans-serif;font-size:13px" id="gmail-m_-8425935437304842120yui_3_16_0_ym19_1_1493920506048_24794"> <div style="font-family:helveticaneue,'helvetica neue',helvetica,arial,'lucida grande',sans-serif;font-size:16px" id="gmail-m_-8425935437304842120yui_3_16_0_ym19_1_1493920506048_24793"> <div dir="ltr" id="gmail-m_-8425935437304842120yui_3_16_0_ym19_1_1493920506048_24998"> <font id="gmail-m_-8425935437304842120yui_3_16_0_ym19_1_1493920506048_25031" size="2" face="Arial"> <hr id="gmail-m_-8425935437304842120yui_3_16_0_ym19_1_1493920506048_25083" size="1"> <b id="gmail-m_-8425935437304842120yui_3_16_0_ym19_1_1493920506048_25342"><span style="font-weight:bold" id="gmail-m_-8425935437304842120yui_3_16_0_ym19_1_1493920506048_25341">From:</span></b> Harold Tessmann <<a href="mailto:htessmann@control-tec.com" target="_blank">htessmann@control-tec.com</a>><br> <b><span style="font-weight:bold">To:</span></b> <a href="mailto:AnnArbor-pm@pm.org" target="_blank">AnnArbor-pm@pm.org</a>; <a href="mailto:Detroit-pm@pm.org" target="_blank">Detroit-pm@pm.org</a> <br> <b id="gmail-m_-8425935437304842120yui_3_16_0_ym19_1_1493920506048_25340"><span style="font-weight:bold" id="gmail-m_-8425935437304842120yui_3_16_0_ym19_1_1493920506048_25339">Sent:</span></b> Thursday, May 4, 2017 3:36 PM<br> <b id="gmail-m_-8425935437304842120yui_3_16_0_ym19_1_1493920506048_25080"><span style="font-weight:bold" id="gmail-m_-8425935437304842120yui_3_16_0_ym19_1_1493920506048_25079">Subject:</span></b> [AnnArbor.pm] Seeking advice on using Perl in a professional way<br> </font> </div> <div class="gmail-m_-8425935437304842120y_msg_container" id="gmail-m_-8425935437304842120yui_3_16_0_ym19_1_1493920506048_24792"><br><div id="gmail-m_-8425935437304842120yiv9570834890"><div dir="ltr" id="gmail-m_-8425935437304842120yui_3_16_0_ym19_1_1493920506048_24791"><div id="gmail-m_-8425935437304842120yui_3_16_0_ym19_1_1493920506048_24997">Hi from YpsiArbor/Allen Park,</div><div id="gmail-m_-8425935437304842120yui_3_16_0_ym19_1_1493920506048_24996"><br></div><div id="gmail-m_-8425935437304842120yui_3_16_0_ym19_1_1493920506048_25032">I'm looking to productionize some Perl scripts, and as such, I want to adopt more structure than I use in disposable scripts. These scripts would be used within the bounds of my employer, not released to the general public (with maybe one or two exceptions). I know that TIMTOWTDI, but I like the “sometimes consistency is not a bad thing either” extension when it comes to common problems such as command-line option parsing, and the perldocs don’t go in depth on what people use in the real world. I’m looking for advice on topics including, but not limited to:</div><div id="gmail-m_-8425935437304842120yui_3_16_0_ym19_1_1493920506048_25033"><br></div><div id="gmail-m_-8425935437304842120yui_3_16_0_ym19_1_1493920506048_25034">• Modern Perl: I like it in general, and I can install it on my team’s machines. Are there reasons I shouldn’t use it?</div><div id="gmail-m_-8425935437304842120yui_3_16_0_ym19_1_1493920506048_25035"><br></div><div id="gmail-m_-8425935437304842120yui_3_16_0_ym19_1_1493920506048_24842">• Does anybody have a suggestion for a good blank script template? For instance, I know I want "use Modern::Perl 'version';" or "use warnings/strict;", etc., but there’s probably other things I would want in a basic script. I’ve handled this in a sort of ad-hoc manner, growing new scripts based on what I learned from the old, but I’d like to build a good template once and be done with it. I’d also like the template to include documentation, and that raises more questions. Is there a reason to put my pod block near the top vs. the bottom? Getopt::Tiny seems nice, including a feature to automagically build a usage block—should I use that or is there a reason to avoid it? Or is there a better option parser?</div><div id="gmail-m_-8425935437304842120yui_3_16_0_ym19_1_1493920506048_24830"><br></div><div id="gmail-m_-8425935437304842120yui_3_16_0_ym19_1_1493920506048_24790">• Do you run Perl::Critic on your code? I know I’ll disable some of the rules, but is it more hassle overall than it’s worth? Similarly, PerlTidy: it seems useful for generating HTML versions of documentation, but I write code in a very precise way, such it would take more time to configure it than I would save in reformatting.</div><div id="gmail-m_-8425935437304842120yui_3_16_0_ym19_1_1493920506048_25696"><br></div><div id="gmail-m_-8425935437304842120yui_3_16_0_ym19_1_1493920506048_25062">• Thus far I haven’t built anything complicated enough to warrant figuring out an object library; I can get by with basic hash-based structures. I’ve read a bit about Moose and Dancer: how do they compare? And what else exists that I should consider?</div><div id="gmail-m_-8425935437304842120yui_3_16_0_ym19_1_1493920506048_25061"><br></div><div id="gmail-m_-8425935437304842120yui_3_16_0_ym19_1_1493920506048_25060">Any advice is greatly appreciated.</div><div id="gmail-m_-8425935437304842120yui_3_16_0_ym19_1_1493920506048_25059"><br></div><div id="gmail-m_-8425935437304842120yui_3_16_0_ym19_1_1493920506048_25058">Thanks,</div><div id="gmail-m_-8425935437304842120yui_3_16_0_ym19_1_1493920506048_25695">Harold</div>
</div></div>______________________________<wbr>_________________<br>AnnArbor-pm mailing list<br><a href="mailto:AnnArbor-pm@pm.org" target="_blank">AnnArbor-pm@pm.org</a><br><a href="http://mail.pm.org/mailman/listinfo/annarbor-pm" target="_blank">http://mail.pm.org/mailman/<wbr>listinfo/annarbor-pm</a><br></div></div></div></div></div></div></blockquote></div><br>
</div></div>