Initial add of defaria.com
[clearscm.git] / defaria.com / blogs / Status / 2006 / 01 / perl-test.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=" Ray wanted an easy/medium/hard Perl test...">
6     <meta name="generator" content="Movable Type 5.2.3">
7     <title>Perl test - 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/2006/01/perl-test.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/2006/01/clearcase-mergi.html" title="Clearcase Merging/CQ Time Stamp problem/CQ Help problem">
20     <link rel="next" href="http://defaria.com/blogs/Status/2006/01/pqa-cdomessage.html" title="PQA CDO.Message">
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="Perl test">
25     <meta property="og:url" content="http://defaria.com/blogs/Status/2006/01/perl-test.html">
26     <meta property="og:description" content=" Ray wanted an easy/medium/hard Perl test...">
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=" Ray wanted an easy/medium/hard Perl test...">
31     <link itemprop="url" href="http://defaria.com/blogs/Status/2006/01/perl-test.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">Perl test</li>
66             </ul>
67             <div id="individual-main" class="main" role="main">
68               <article id="entry-1780" class="entry entry-asset asset hentry">
69                 <div class="asset-header">
70                   <h2 itemprop="name" class="asset-name entry-title">Perl test</h2>
71                   <footer class="asset-meta">
72                     <ul class="asset-meta-list">
73                       <li class="asset-meta-list-item">Posted on <time datetime="2006-01-13T11:59:51-08:00" itemprop="datePublished">January 13, 2006</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/broadcom/">Broadcom</a></li>
78   
79
80                    </ul>
81                 </footer>
82                 </div>
83                 <div class="entry-content asset-content" itemprop="articleBody">
84                   <ul>
85   <li>Ray wanted an easy/medium/hard Perl test</li>
86 </ul>
87                   <h2>Perl Test</h2>
88
89 <h3>Easy</h3>
90 <ol>
91   <li>What does Perl stand for?</li>
92
93 <p><font color="red">Practical Extraction and Reporting Language</font></p>
94
95   <li>What basic datatypes does Perl support?</li>
96
97 <p><font color="red">Scalar, Array, Hash, Typeglob</font></p>
98
99   <li>What does the following do:</li>
100
101 <div class="code"><pre>
102 my @output = &lt;STDIN&gt;;
103
104 foreach (@output) {
105   print "$_\n" if /\d+/;
106 }
107 </pre></div>
108
109 <p><font color="red">Echoes lines that have numbers in them)</font></p>
110
111 </ol>
112
113 <h3>Medium</h3>
114
115 <ol>
116   <li>What is <tt>use strict</tt> and why is it important to use?</li>
117
118 <p><font color="red">Strict requires that variable references are scoped - e.g. my $var)</font></p>
119
120   <li>What does the following code do:</li>
121
122 <div class="code"><pre>
123 sub d {
124   my %p = @_;
125
126   print "\np:\n";
127
128   foreach (sort (keys (%p))) {
129     if (/password/) {
130       print "$_: &lt;password&gt;\n";
131     } else {
132       print "$_: ${p {$_}}\n";
133     } # if
134   } # foreach
135 } # d
136 </pre></div>
137
138 <p><font color="red">Displays the contents of the passed in hash %p substituting "&lt;password&gt;" if the hash happens to have a key of password</font></p>
139
140   <li>What do you do to enable Perl to find user written modules?</li>
141
142 <p><font color="red">You need to modify the @INC array to include the path to your modules)</font></p>
143 </ol>
144
145 <h3>Hard</h3>
146
147 <ol>
148   <li>What is the difference between <tt>require</tt> and <tt>use</tt>?</li>
149  
150 <p><font color="red">See <a href="/blogs/Status/archives/000492.html">this article</a> for the answer</font></p>
151
152   <li>What is a better way to do the following and why:</li>
153
154 <div class="code"><pre>
155 undef $/;
156 </pre></div>
157
158 <p><font color="red">See <a href="/blogs/Status/archives/000492.html">this article</a>) for the answer</font></p>
159
160   <li>What does the following print out when executed:</li>
161
162 <div class="code"><pre>
163 sub foo {
164   my ($x, $y) = @_;
165
166   my @z = `$x 2&gt;&amp;1`; chomp @z;
167   my $s = $?;
168
169   if ($s ne 0) {
170     if (defined $y) {
171       print "$_\n" foreach (@z);
172     }
173   }
174
175   return ($y, @z);
176 } # foo
177
178 my @a;
179 my $c="ls /temp";
180 my $d;
181
182 ($d, @a) = foo $c;
183 print "Worked!\n" if !$d;
184 </pre></div>
185
186 <p><font color="red">(It will output:</p>
187
188 <div class="code"><pre>
189 Worked!
190 </pre></div>
191
192 <p>Yet nothing really worked at all! Key issues are:</p>
193
194 <ul>
195     <li>Passing parameters to subroutines. Two parameters are passed in</li>
196
197     <li>Parameter return: Two parameters are returned</li>
198
199     <li>Evaluation of parameters: $y in foo is not passed in thus the print... foreach doesn't execute></li>
200
201     <li>Evaluation of true/false: foo returns $y which is errno,
202 which is not 0 thus not true but the !$d evaluates to true and the
203 print "Worked!\n" gets executed.</li>
204 </font></ul>
205 </ol>
206                 </div>
207                 <nav class="page-navigation entry-navigation pagination content-nav">
208                   <ul class="page-navigation-list">
209
210                     <li class="page-navigation-list-item page-navigation-prev"><a rel="prev" href="http://defaria.com/blogs/Status/2006/01/clearcase-mergi.html" title="Clearcase Merging/CQ Time Stamp problem/CQ Help problem">Previous entry</a></li>
211
212
213                     <li class="page-navigation-list-item page-navigation-next"><a rel="next" href="http://defaria.com/blogs/Status/2006/01/pqa-cdomessage.html" title="PQA CDO.Message">Next entry</a></li>
214
215                   </ul>
216                 </nav>
217                 <!--
218 <aside id="zenback" class="zenback feedback">
219   Please paste Zenback script code here.
220 </aside>
221 -->
222                 
223                 
224               </article>
225             </div>
226             <aside class="widgets related" role="complementary">
227               <nav class="widget-search widget">
228   <div class="widget-content">
229     <form method="get" id="search" action="http://defaria.com/mt/mt-search.cgi">
230       <div>
231         <input type="text" name="search" value="" placeholder="Search...">
232
233         <input type="hidden" name="IncludeBlogs" value="8">
234
235         <input type="hidden" name="limit" value="20">
236         <button type="submit" name="button">
237           <img alt="Search" src="/mt/mt-static/support/theme_static/rainier/img/search-icon.png">
238         </button>
239       </div>
240     </form>
241   </div>
242 </nav>
243 <nav class="widget-archive-category widget">
244   <h3 class="widget-header">Categories</h3>
245   <div class="widget-content">
246     
247       
248     <ul class="widget-list">
249       
250       
251       <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/ameriquest/">Ameriquest (99)</a>
252       
253       
254       </li>
255       
256     
257       
258       
259       <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/audience/">Audience (3)</a>
260       
261       
262       </li>
263       
264     
265       
266       
267       <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/broadcom/">Broadcom (76)</a>
268       
269       
270       </li>
271       
272     
273       
274       
275       <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/gpdb/">GPDB (35)</a>
276       
277       
278       </li>
279       
280     
281       
282       
283       <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/general-dynamics/">General Dynamics (61)</a>
284       
285       
286       </li>
287       
288     
289       
290       
291       <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/general-electric/">General Electric (13)</a>
292       
293       
294       </li>
295       
296     
297       
298       
299       <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/hewlett-packard/">Hewlett Packard (13)</a>
300       
301       
302       </li>
303       
304     
305       
306       
307       <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/lynuxworks/">LynuxWorks (162)</a>
308       
309       
310       </li>
311       
312     
313       
314       
315       <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/pqa/">PQA (35)</a>
316       
317       
318       </li>
319       
320     
321       
322       
323       <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/salira/">Salira (79)</a>
324       
325       
326       </li>
327       
328     
329       
330       
331       <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/tellabs/">Tellabs (2)</a>
332       
333       
334       </li>
335       
336     
337       
338       
339       <li class="widget-list-item"><a href="http://defaria.com/blogs/Status/texas-instruments/">Texas Instruments (31)</a>
340       
341       
342       </li>
343       
344     </ul>
345       
346     
347   </div>
348 </nav>
349   
350
351 <nav class="widget-archive-dropdown widget">
352   <h3 class="widget-header">Archives</h3>
353   <div class="widget-content">
354     <select>
355       <option>Select a Month...</option>
356     
357       <option value="http://defaria.com/blogs/Status/2016/02/">February 2016</option>
358     
359   
360     
361       <option value="http://defaria.com/blogs/Status/2014/09/">September 2014</option>
362     
363   
364     
365       <option value="http://defaria.com/blogs/Status/2014/04/">April 2014</option>
366     
367   
368     
369       <option value="http://defaria.com/blogs/Status/2014/03/">March 2014</option>
370     
371   
372     
373       <option value="http://defaria.com/blogs/Status/2013/02/">February 2013</option>
374     
375   
376     
377       <option value="http://defaria.com/blogs/Status/2012/09/">September 2012</option>
378     
379   
380     
381       <option value="http://defaria.com/blogs/Status/2012/08/">August 2012</option>
382     
383   
384     
385       <option value="http://defaria.com/blogs/Status/2012/05/">May 2012</option>
386     
387   
388     
389       <option value="http://defaria.com/blogs/Status/2012/04/">April 2012</option>
390     
391   
392     
393       <option value="http://defaria.com/blogs/Status/2012/02/">February 2012</option>
394     
395   
396     
397       <option value="http://defaria.com/blogs/Status/2012/01/">January 2012</option>
398     
399   
400     
401       <option value="http://defaria.com/blogs/Status/2011/10/">October 2011</option>
402     
403   
404     
405       <option value="http://defaria.com/blogs/Status/2011/07/">July 2011</option>
406     
407   
408     
409       <option value="http://defaria.com/blogs/Status/2010/09/">September 2010</option>
410     
411   
412     
413       <option value="http://defaria.com/blogs/Status/2010/08/">August 2010</option>
414     
415   
416     
417       <option value="http://defaria.com/blogs/Status/2010/04/">April 2010</option>
418     
419   
420     
421       <option value="http://defaria.com/blogs/Status/2010/03/">March 2010</option>
422     
423   
424     
425       <option value="http://defaria.com/blogs/Status/2010/02/">February 2010</option>
426     
427   
428     
429       <option value="http://defaria.com/blogs/Status/2009/05/">May 2009</option>
430     
431   
432     
433       <option value="http://defaria.com/blogs/Status/2009/04/">April 2009</option>
434     
435   
436     
437       <option value="http://defaria.com/blogs/Status/2008/07/">July 2008</option>
438     
439   
440     
441       <option value="http://defaria.com/blogs/Status/2008/05/">May 2008</option>
442     
443   
444     
445       <option value="http://defaria.com/blogs/Status/2008/04/">April 2008</option>
446     
447   
448     
449       <option value="http://defaria.com/blogs/Status/2008/03/">March 2008</option>
450     
451   
452     
453       <option value="http://defaria.com/blogs/Status/2008/02/">February 2008</option>
454     
455   
456     
457       <option value="http://defaria.com/blogs/Status/2008/01/">January 2008</option>
458     
459   
460     
461       <option value="http://defaria.com/blogs/Status/2007/12/">December 2007</option>
462     
463   
464     
465       <option value="http://defaria.com/blogs/Status/2007/11/">November 2007</option>
466     
467   
468     
469       <option value="http://defaria.com/blogs/Status/2007/10/">October 2007</option>
470     
471   
472     
473       <option value="http://defaria.com/blogs/Status/2007/09/">September 2007</option>
474     
475   
476     
477       <option value="http://defaria.com/blogs/Status/2007/08/">August 2007</option>
478     
479   
480     
481       <option value="http://defaria.com/blogs/Status/2007/07/">July 2007</option>
482     
483   
484     
485       <option value="http://defaria.com/blogs/Status/2007/06/">June 2007</option>
486     
487   
488     
489       <option value="http://defaria.com/blogs/Status/2007/05/">May 2007</option>
490     
491   
492     
493       <option value="http://defaria.com/blogs/Status/2007/04/">April 2007</option>
494     
495   
496     
497       <option value="http://defaria.com/blogs/Status/2007/03/">March 2007</option>
498     
499   
500     
501       <option value="http://defaria.com/blogs/Status/2007/01/">January 2007</option>
502     
503   
504     
505       <option value="http://defaria.com/blogs/Status/2006/12/">December 2006</option>
506     
507   
508     
509       <option value="http://defaria.com/blogs/Status/2006/11/">November 2006</option>
510     
511   
512     
513       <option value="http://defaria.com/blogs/Status/2006/10/">October 2006</option>
514     
515   
516     
517       <option value="http://defaria.com/blogs/Status/2006/09/">September 2006</option>
518     
519   
520     
521       <option value="http://defaria.com/blogs/Status/2006/07/">July 2006</option>
522     
523   
524     
525       <option value="http://defaria.com/blogs/Status/2006/06/">June 2006</option>
526     
527   
528     
529       <option value="http://defaria.com/blogs/Status/2006/05/">May 2006</option>
530     
531   
532     
533       <option value="http://defaria.com/blogs/Status/2006/04/">April 2006</option>
534     
535   
536     
537       <option value="http://defaria.com/blogs/Status/2006/03/">March 2006</option>
538     
539   
540     
541       <option value="http://defaria.com/blogs/Status/2006/02/">February 2006</option>
542     
543   
544     
545       <option value="http://defaria.com/blogs/Status/2006/01/">January 2006</option>
546     
547   
548     
549       <option value="http://defaria.com/blogs/Status/2005/12/">December 2005</option>
550     
551   
552     
553       <option value="http://defaria.com/blogs/Status/2005/11/">November 2005</option>
554     
555   
556     
557       <option value="http://defaria.com/blogs/Status/2005/10/">October 2005</option>
558     
559   
560     
561       <option value="http://defaria.com/blogs/Status/2005/09/">September 2005</option>
562     
563   
564     
565       <option value="http://defaria.com/blogs/Status/2005/08/">August 2005</option>
566     
567   
568     
569       <option value="http://defaria.com/blogs/Status/2005/07/">July 2005</option>
570     
571   
572     
573       <option value="http://defaria.com/blogs/Status/2005/06/">June 2005</option>
574     
575   
576     
577       <option value="http://defaria.com/blogs/Status/2005/05/">May 2005</option>
578     
579   
580     
581       <option value="http://defaria.com/blogs/Status/2005/04/">April 2005</option>
582     
583   
584     
585       <option value="http://defaria.com/blogs/Status/2005/03/">March 2005</option>
586     
587   
588     
589       <option value="http://defaria.com/blogs/Status/2005/02/">February 2005</option>
590     
591   
592     
593       <option value="http://defaria.com/blogs/Status/2005/01/">January 2005</option>
594     
595   
596     
597       <option value="http://defaria.com/blogs/Status/2004/12/">December 2004</option>
598     
599   
600     
601       <option value="http://defaria.com/blogs/Status/2004/09/">September 2004</option>
602     
603   
604     
605       <option value="http://defaria.com/blogs/Status/2004/08/">August 2004</option>
606     
607   
608     
609       <option value="http://defaria.com/blogs/Status/2004/07/">July 2004</option>
610     
611   
612     
613       <option value="http://defaria.com/blogs/Status/2004/06/">June 2004</option>
614     
615   
616     
617       <option value="http://defaria.com/blogs/Status/2004/05/">May 2004</option>
618     
619   
620     
621       <option value="http://defaria.com/blogs/Status/2004/04/">April 2004</option>
622     
623   
624     
625       <option value="http://defaria.com/blogs/Status/2004/03/">March 2004</option>
626     
627   
628     
629       <option value="http://defaria.com/blogs/Status/2004/02/">February 2004</option>
630     
631   
632     
633       <option value="http://defaria.com/blogs/Status/2004/01/">January 2004</option>
634     
635   
636     
637       <option value="http://defaria.com/blogs/Status/2003/12/">December 2003</option>
638     
639   
640     
641       <option value="http://defaria.com/blogs/Status/2003/11/">November 2003</option>
642     
643     </select>
644   </div>
645 </nav>
646     
647   
648
649 <div class="widget-syndication widget section">
650   <div class="widget-content">
651     <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>
652
653   </div>
654 </div>
655
656             </aside>
657           </div>
658         </div>
659         <footer id="footer" role="contentinfo">
660           <div id="footer-inner">
661             <div id="footer-content">
662   <nav role="navigation">
663           <ul>
664             <li><a href="http://defaria.com/blogs/Status/">Home</a></li>
665
666
667           </ul>
668         </nav>
669
670   <p class="license">&copy; Copyright 2016.</p>
671   <p class="poweredby">Powered by <a href="http://www.movabletype.org/">Movable Type</a></p>
672 </div>
673           </div>
674         </footer>
675       </div>
676     </div>
677     <script src="http://defaria.com/mt/mt-static/jquery/jquery.min.js"></script>
678     <script src="http://defaria.com/blogs/Status/mt-theme-scale2.js"></script>
679   </body>
680 </html>