Initial add of defaria.com
[clearscm.git] / defaria.com / blogs / Status / 2007 / 09 / ucmwb-123-relea.html
1 <!DOCTYPE html>
2 <html lang="en-us" itemscope itemtype="http://schema.org/Article">
3   <head>
4     <meta charset="utf-8">
5     <meta name="description" content=" Released ucmwb 1.2.3...">
6     <meta name="generator" content="Movable Type 5.2.3">
7     <title>ucmwb 1.2.3 release/Perl'isms - Status</title>
8     <link rel="alternate" type="application/atom+xml" title="Recent Entries" href="http://defaria.com/blogs/Status/atom.xml">
9     <link rel="canonical" href="http://defaria.com/blogs/Status/2007/09/ucmwb-123-relea.html">
10     <meta name="viewport" content="width=device-width,initial-scale=1">
11     <link rel="stylesheet" href="http://defaria.com/blogs/Status/styles.css">
12     <!--[if lt IE 9]>
13     <link rel="stylesheet" href="http://defaria.com/blogs/Status/styles_ie.css">
14     <script src="/mt/mt-static/support/theme_static/rainier/js/html5shiv.js"></script>
15     <![endif]-->
16     
17     <link rel="start" href="http://defaria.com/blogs/Status/">
18
19     <link rel="prev" href="http://defaria.com/blogs/Status/2007/09/ucmwb-su-bug.html" title="UCMWB su bug">
20     <link rel="next" href="http://defaria.com/blogs/Status/2007/09/comptreelibs.html" title="comptree/libs">
21     <!-- Open Graph Protocol -->
22     <meta property="og:type" content="article">
23     <meta property="og:locale" content="en-us">
24     <meta property="og:title" content="ucmwb 1.2.3 release/Perl'isms">
25     <meta property="og:url" content="http://defaria.com/blogs/Status/2007/09/ucmwb-123-relea.html">
26     <meta property="og:description" content=" Released ucmwb 1.2.3...">
27     <meta property="og:site_name" content="Status">
28     <meta property="og:image" content="/mt/mt-static/support/theme_static/rainier/img/siteicon-sample.png">
29     <!-- Metadata -->
30     <meta itemprop="description" content=" Released ucmwb 1.2.3...">
31     <link itemprop="url" href="http://defaria.com/blogs/Status/2007/09/ucmwb-123-relea.html">
32     <link itemprop="image" href="/mt/mt-static/support/theme_static/rainier/img/siteicon-sample.png">
33     
34   </head>
35   <body>
36     <div id="container">
37       <div id="container-inner">
38         <header id="header" role="banner">
39           <div id="header-inner">
40             <div id="header-content">
41               <h1>
42                 <a href="http://defaria.com/blogs/Status/">
43
44                   Status
45
46                 </a>
47               </h1>
48               
49             </div>
50
51             <nav role="navigation">
52           <ul>
53             <li><a href="http://defaria.com/blogs/Status/">Home</a></li>
54
55
56           </ul>
57         </nav>
58
59           </div>
60         </header>
61         <div id="content">
62           <div id="content-inner">
63             <ul class="breadcrumb breadcrumb-list">
64               <li class="breadcrumb-list-item"><a href="http://defaria.com/blogs/Status/">Home</a></li>
65               <li class="breadcrumb-list-item">ucmwb 1.2.3 release/Perl'isms</li>
66             </ul>
67             <div id="individual-main" class="main" role="main">
68               <article id="entry-1924" class="entry entry-asset asset hentry">
69                 <div class="asset-header">
70                   <h2 itemprop="name" class="asset-name entry-title">ucmwb 1.2.3 release/Perl'isms</h2>
71                   <footer class="asset-meta">
72                     <ul class="asset-meta-list">
73                       <li class="asset-meta-list-item">Posted on <time datetime="2007-09-14T12:51:03-08:00" itemprop="datePublished">September 14, 2007</time></li>
74                       <li class="asset-meta-list-item">by <span class="author entry-author vcard"></span></li>
75
76   
77                       <li class="asset-meta-list-item">in <a itemprop="articleSection" rel="tag" href="http://defaria.com/blogs/Status/general-dynamics/">General Dynamics</a></li>
78   
79
80                    </ul>
81                 </footer>
82                 </div>
83                 <div class="entry-content asset-content" itemprop="articleBody">
84                   <ul>
85   <li>Released ucmwb 1.2.3</li>
86 </ul>
87                   <h3>FindBin, Getopt::Long and Display.pm</h3>
88
89 <p>Here's how I typically use <a
90  href="http://search.cpan.org/%7Enwclark/perl-5.8.8/lib/FindBin.pm">FindBin</a>:</p>
91
92 <div class=code><pre>
93 use FindBin;
94 ...
95 use lib "$FindBin::Bin/../lib";
96 ...
97 sub Usage ($) {
98   my ($msg) = @_;
99
100   display "ERROR: $msg\n" if defined $msg;
101   display &lt;&lt;END;
102 Usage: $FindBin::Script [-usage] [-verbose] [-debug] [-exec]
103                 -from_view &lt;view&gt; -label &lt;label_name&gt;
104 ...
105 END
106 </pre></div>
107
108 <p>Also I tend to use Getopt::Long. It is extremely flexible. Options can be specified in the GNU long method as in --debug or just -debug. Additionally you can abbreviate as in -d IFF there is no other option that starts with "d". Options can have parameters (-file myfile.txt or -file=myfile.txt), set boolean (-verbose can set say $verbose), automatic negation (-verbose or -noverbose), even call subroutines directly!k Here's an example.</p>
109
110 <div class=code><pre>
111 use GetOpt::Long;
112 ...
113 my $execute     = 0;
114 my $from_view;  # e.g. p6258c_RAN_FDD_Doc_Bld1_int
115 my $branch;     # e.g. ran_fdd_release_build2_integration
116 my $label;      # e.g. RAN_FDD_RELEASE_BUILD1
117
118 GetOptions (
119   "usage"       =&gt; sub { Usage "" },
120   "verbose"     =&gt; sub { set_verbose },
121   "debug"       =&gt; sub { set_debug },
122   "exec!"       =&gt; \$execute,
123   "from_view=s" =&gt; \$from_view,
124   "branch=s"    =&gt; \$branch,
125   "label=s"     =&gt; \$label,
126 ) || Usage "Unknown parameter";
127 </pre></div>
128
129 <p>Some notes about the above:</p>
130
131 <ul>
132   <li>Usage is a subroutine (most people have one) that takes one parameter for an extra message to display first.</li>
133
134   <li>Eat your own dog food! I use my <a href="http://clearscm.com/php/cvs_man.php?file=lib/Display.pm">Display</a> module which has display routines for verbose and debug, etc. It also has $verbose and $debug variables and exports the set_verbose and set_debug methods.</li>
135
136   <li>The "exec!" is a negation. So -exec and -noexec apply and set $execute accordingly</li>
137
138   <li>All of "from_view", "branch" and "label" are simple name/value type parameters so -branch &lt;branchname&gt; sets $branch to &lt;branchname&gt;.</li>
139 </ul>
140
141 <p>A word on Display.pm:</p>
142
143 <p>I find that often people do the following:</p>
144
145
146 <div class=code><pre>
147 print "In myspecial_subroutine: File = $file\n" if $debug;
148 </pre></div>
149
150 <p>for debugging. To me it's always been a hassle to have to remember to include the "\b" and the "if $debug", etc. Granted that's not a lot. But how can I make it better?</p>
151
152 <p>My thought was to name the procedure debug and include the "\n" by default. People oughta quickly discern that:</p>
153
154 <div class=code><pre>
155 debug "In myspecial_subroutine: File = $file";
156 </pre></div>
157
158 <p>probably only happens when debugging.</p>
159
160 <p>Additionally I support routines like verbose, debug, error, warning
161 (from Display.pm).</p>
162                 </div>
163                 <nav class="page-navigation entry-navigation pagination content-nav">
164                   <ul class="page-navigation-list">
165
166                     <li class="page-navigation-list-item page-navigation-prev"><a rel="prev" href="http://defaria.com/blogs/Status/2007/09/ucmwb-su-bug.html" title="UCMWB su bug">Previous entry</a></li>
167
168
169                     <li class="page-navigation-list-item page-navigation-next"><a rel="next" href="http://defaria.com/blogs/Status/2007/09/comptreelibs.html" title="comptree/libs">Next entry</a></li>
170
171                   </ul>
172                 </nav>
173                 <!--
174 <aside id="zenback" class="zenback feedback">
175   Please paste Zenback script code here.
176 </aside>
177 -->
178                 
179                 
180               </article>
181             </div>
182             <aside class="widgets related" role="complementary">
183               <nav class="widget-search widget">
184   <div class="widget-content">
185     <form method="get" id="search" action="http://defaria.com/mt/mt-search.cgi">
186       <div>
187         <input type="text" name="search" value="" placeholder="Search...">
188
189         <input type="hidden" name="IncludeBlogs" value="8">
190
191         <input type="hidden" name="limit" value="20">
192         <button type="submit" name="button">
193           <img alt="Search" src="/mt/mt-static/support/theme_static/rainier/img/search-icon.png">
194         </button>
195       </div>
196     </form>
197   </div>
198 </nav>
199 <nav class="widget-archive-category widget">
200   <h3 class="widget-header">Categories</h3>
201   <div class="widget-content">
202     
203       
204     <ul class="widget-list">
205       
206       
207       <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/ameriquest/">Ameriquest (99)</a>
208       
209       
210       </li>
211       
212     
213       
214       
215       <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/audience/">Audience (3)</a>
216       
217       
218       </li>
219       
220     
221       
222       
223       <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/broadcom/">Broadcom (76)</a>
224       
225       
226       </li>
227       
228     
229       
230       
231       <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/gpdb/">GPDB (35)</a>
232       
233       
234       </li>
235       
236     
237       
238       
239       <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/general-dynamics/">General Dynamics (61)</a>
240       
241       
242       </li>
243       
244     
245       
246       
247       <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/general-electric/">General Electric (13)</a>
248       
249       
250       </li>
251       
252     
253       
254       
255       <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/hewlett-packard/">Hewlett Packard (13)</a>
256       
257       
258       </li>
259       
260     
261       
262       
263       <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/lynuxworks/">LynuxWorks (162)</a>
264       
265       
266       </li>
267       
268     
269       
270       
271       <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/pqa/">PQA (35)</a>
272       
273       
274       </li>
275       
276     
277       
278       
279       <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/salira/">Salira (79)</a>
280       
281       
282       </li>
283       
284     
285       
286       
287       <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/tellabs/">Tellabs (2)</a>
288       
289       
290       </li>
291       
292     
293       
294       
295       <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/texas-instruments/">Texas Instruments (31)</a>
296       
297       
298       </li>
299       
300     </ul>
301       
302     
303   </div>
304 </nav>
305   
306
307 <nav class="widget-archive-dropdown widget">
308   <h3 class="widget-header">Archives</h3>
309   <div class="widget-content">
310     <select>
311       <option>Select a Month...</option>
312     
313       <option value="http://defaria.com/blogs/Status/2016/02/">February 2016</option>
314     
315   
316     
317       <option value="http://defaria.com/blogs/Status/2014/09/">September 2014</option>
318     
319   
320     
321       <option value="http://defaria.com/blogs/Status/2014/04/">April 2014</option>
322     
323   
324     
325       <option value="http://defaria.com/blogs/Status/2014/03/">March 2014</option>
326     
327   
328     
329       <option value="http://defaria.com/blogs/Status/2013/02/">February 2013</option>
330     
331   
332     
333       <option value="http://defaria.com/blogs/Status/2012/09/">September 2012</option>
334     
335   
336     
337       <option value="http://defaria.com/blogs/Status/2012/08/">August 2012</option>
338     
339   
340     
341       <option value="http://defaria.com/blogs/Status/2012/05/">May 2012</option>
342     
343   
344     
345       <option value="http://defaria.com/blogs/Status/2012/04/">April 2012</option>
346     
347   
348     
349       <option value="http://defaria.com/blogs/Status/2012/02/">February 2012</option>
350     
351   
352     
353       <option value="http://defaria.com/blogs/Status/2012/01/">January 2012</option>
354     
355   
356     
357       <option value="http://defaria.com/blogs/Status/2011/10/">October 2011</option>
358     
359   
360     
361       <option value="http://defaria.com/blogs/Status/2011/07/">July 2011</option>
362     
363   
364     
365       <option value="http://defaria.com/blogs/Status/2010/09/">September 2010</option>
366     
367   
368     
369       <option value="http://defaria.com/blogs/Status/2010/08/">August 2010</option>
370     
371   
372     
373       <option value="http://defaria.com/blogs/Status/2010/04/">April 2010</option>
374     
375   
376     
377       <option value="http://defaria.com/blogs/Status/2010/03/">March 2010</option>
378     
379   
380     
381       <option value="http://defaria.com/blogs/Status/2010/02/">February 2010</option>
382     
383   
384     
385       <option value="http://defaria.com/blogs/Status/2009/05/">May 2009</option>
386     
387   
388     
389       <option value="http://defaria.com/blogs/Status/2009/04/">April 2009</option>
390     
391   
392     
393       <option value="http://defaria.com/blogs/Status/2008/07/">July 2008</option>
394     
395   
396     
397       <option value="http://defaria.com/blogs/Status/2008/05/">May 2008</option>
398     
399   
400     
401       <option value="http://defaria.com/blogs/Status/2008/04/">April 2008</option>
402     
403   
404     
405       <option value="http://defaria.com/blogs/Status/2008/03/">March 2008</option>
406     
407   
408     
409       <option value="http://defaria.com/blogs/Status/2008/02/">February 2008</option>
410     
411   
412     
413       <option value="http://defaria.com/blogs/Status/2008/01/">January 2008</option>
414     
415   
416     
417       <option value="http://defaria.com/blogs/Status/2007/12/">December 2007</option>
418     
419   
420     
421       <option value="http://defaria.com/blogs/Status/2007/11/">November 2007</option>
422     
423   
424     
425       <option value="http://defaria.com/blogs/Status/2007/10/">October 2007</option>
426     
427   
428     
429       <option value="http://defaria.com/blogs/Status/2007/09/">September 2007</option>
430     
431   
432     
433       <option value="http://defaria.com/blogs/Status/2007/08/">August 2007</option>
434     
435   
436     
437       <option value="http://defaria.com/blogs/Status/2007/07/">July 2007</option>
438     
439   
440     
441       <option value="http://defaria.com/blogs/Status/2007/06/">June 2007</option>
442     
443   
444     
445       <option value="http://defaria.com/blogs/Status/2007/05/">May 2007</option>
446     
447   
448     
449       <option value="http://defaria.com/blogs/Status/2007/04/">April 2007</option>
450     
451   
452     
453       <option value="http://defaria.com/blogs/Status/2007/03/">March 2007</option>
454     
455   
456     
457       <option value="http://defaria.com/blogs/Status/2007/01/">January 2007</option>
458     
459   
460     
461       <option value="http://defaria.com/blogs/Status/2006/12/">December 2006</option>
462     
463   
464     
465       <option value="http://defaria.com/blogs/Status/2006/11/">November 2006</option>
466     
467   
468     
469       <option value="http://defaria.com/blogs/Status/2006/10/">October 2006</option>
470     
471   
472     
473       <option value="http://defaria.com/blogs/Status/2006/09/">September 2006</option>
474     
475   
476     
477       <option value="http://defaria.com/blogs/Status/2006/07/">July 2006</option>
478     
479   
480     
481       <option value="http://defaria.com/blogs/Status/2006/06/">June 2006</option>
482     
483   
484     
485       <option value="http://defaria.com/blogs/Status/2006/05/">May 2006</option>
486     
487   
488     
489       <option value="http://defaria.com/blogs/Status/2006/04/">April 2006</option>
490     
491   
492     
493       <option value="http://defaria.com/blogs/Status/2006/03/">March 2006</option>
494     
495   
496     
497       <option value="http://defaria.com/blogs/Status/2006/02/">February 2006</option>
498     
499   
500     
501       <option value="http://defaria.com/blogs/Status/2006/01/">January 2006</option>
502     
503   
504     
505       <option value="http://defaria.com/blogs/Status/2005/12/">December 2005</option>
506     
507   
508     
509       <option value="http://defaria.com/blogs/Status/2005/11/">November 2005</option>
510     
511   
512     
513       <option value="http://defaria.com/blogs/Status/2005/10/">October 2005</option>
514     
515   
516     
517       <option value="http://defaria.com/blogs/Status/2005/09/">September 2005</option>
518     
519   
520     
521       <option value="http://defaria.com/blogs/Status/2005/08/">August 2005</option>
522     
523   
524     
525       <option value="http://defaria.com/blogs/Status/2005/07/">July 2005</option>
526     
527   
528     
529       <option value="http://defaria.com/blogs/Status/2005/06/">June 2005</option>
530     
531   
532     
533       <option value="http://defaria.com/blogs/Status/2005/05/">May 2005</option>
534     
535   
536     
537       <option value="http://defaria.com/blogs/Status/2005/04/">April 2005</option>
538     
539   
540     
541       <option value="http://defaria.com/blogs/Status/2005/03/">March 2005</option>
542     
543   
544     
545       <option value="http://defaria.com/blogs/Status/2005/02/">February 2005</option>
546     
547   
548     
549       <option value="http://defaria.com/blogs/Status/2005/01/">January 2005</option>
550     
551   
552     
553       <option value="http://defaria.com/blogs/Status/2004/12/">December 2004</option>
554     
555   
556     
557       <option value="http://defaria.com/blogs/Status/2004/09/">September 2004</option>
558     
559   
560     
561       <option value="http://defaria.com/blogs/Status/2004/08/">August 2004</option>
562     
563   
564     
565       <option value="http://defaria.com/blogs/Status/2004/07/">July 2004</option>
566     
567   
568     
569       <option value="http://defaria.com/blogs/Status/2004/06/">June 2004</option>
570     
571   
572     
573       <option value="http://defaria.com/blogs/Status/2004/05/">May 2004</option>
574     
575   
576     
577       <option value="http://defaria.com/blogs/Status/2004/04/">April 2004</option>
578     
579   
580     
581       <option value="http://defaria.com/blogs/Status/2004/03/">March 2004</option>
582     
583   
584     
585       <option value="http://defaria.com/blogs/Status/2004/02/">February 2004</option>
586     
587   
588     
589       <option value="http://defaria.com/blogs/Status/2004/01/">January 2004</option>
590     
591   
592     
593       <option value="http://defaria.com/blogs/Status/2003/12/">December 2003</option>
594     
595   
596     
597       <option value="http://defaria.com/blogs/Status/2003/11/">November 2003</option>
598     
599     </select>
600   </div>
601 </nav>
602     
603   
604
605 <div class="widget-syndication widget section">
606   <div class="widget-content">
607     <p><img src="http://defaria.com/mt/mt-static/images/status_icons/feed.gif" alt="Subscribe to feed" width="9" height="9" /> <a href="http://defaria.com/blogs/Status/atom.xml">Subscribe to this blog's feed</a></p>
608
609   </div>
610 </div>
611
612             </aside>
613           </div>
614         </div>
615         <footer id="footer" role="contentinfo">
616           <div id="footer-inner">
617             <div id="footer-content">
618   <nav role="navigation">
619           <ul>
620             <li><a href="http://defaria.com/blogs/Status/">Home</a></li>
621
622
623           </ul>
624         </nav>
625
626   <p class="license">&copy; Copyright 2016.</p>
627   <p class="poweredby">Powered by <a href="http://www.movabletype.org/">Movable Type</a></p>
628 </div>
629           </div>
630         </footer>
631       </div>
632     </div>
633     <script src="http://defaria.com/mt/mt-static/jquery/jquery.min.js"></script>
634     <script src="http://defaria.com/blogs/Status/mt-theme-scale2.js"></script>
635   </body>
636 </html>