<html><body><div style="color:#000; background-color:#fff; font-family:times new roman, new york, times, serif;font-size:16px"><div id="yui_3_16_0_1_1426564670136_2599" dir="ltr"><span id="yui_3_16_0_1_1426564670136_2598">Julian,</span></div><div id="yui_3_16_0_1_1426564670136_2816" dir="ltr"><span></span> </div><div id="yui_3_16_0_1_1426564670136_2805"><span id="yui_3_16_0_1_1426564670136_2804">> So if you have something that bit you in the past I would like to hear  about it.  </span></div><div id="yui_3_16_0_1_1426564670136_2597"><span></span> </div><div></div><span id="yui_3_16_0_1_1426564670136_2594"><div id="yui_3_16_0_1_1426564670136_2817">$ perl -Mstrict -Mwarnings -e 'my %hash=(A=>1, B=>2); print $hash{shift}, "\n"' B<br>Use of uninitialized value $hash{"shift"} in print at -e line 1.</div><div id="yui_3_16_0_1_1426564670136_2825"> </div><div id="yui_3_16_0_1_1426564670136_2826" dir="ltr">Uninitialized? B is 2! Perl, what are you thinking?<br></div></span><div class="y_msg_container" id="yui_3_16_0_1_1426564670136_2651" style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;" dir="ltr">This bit me hard as it took a long time to figure out (actually a colleague did ).  The "shift" is actually 'shift' not shift().</div><div class="y_msg_container" id="yui_3_16_0_1_1426564670136_2650" style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;" dir="ltr"> </div><div class="y_msg_container" id="yui_3_16_0_1_1426564670136_2649" style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;" dir="ltr">I wish there we an ultra strict mode which does not allow bare words for hash keys.</div><div class="y_msg_container" id="yui_3_16_0_1_1426564670136_2648" style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;" dir="ltr"> </div><div class="y_msg_container" id="yui_3_16_0_1_1426564670136_2741" style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;" dir="ltr">I now only use two syntaxes for hash keys. Once bitten twice shy.</div><div class="y_msg_container" id="yui_3_16_0_1_1426564670136_2722" style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;" dir="ltr"> </div><div class="y_msg_container" id="yui_3_16_0_1_1426564670136_2659" style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;" dir="ltr">$hash{'A'};</div><div class="y_msg_container" id="yui_3_16_0_1_1426564670136_2737" style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;" dir="ltr">$hash{$key};</div><div class="y_msg_container" id="yui_3_16_0_1_1426564670136_2646" style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;" dir="ltr"> </div><div class="y_msg_container" id="yui_3_16_0_1_1426564670136_2740" style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;" dir="ltr">Example, of what I would do today.  First, always shift/set variables at the start of every script/sub with sane defaults.</div><div class="y_msg_container" id="yui_3_16_0_1_1426564670136_2739" style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;" dir="ltr"> </div><div class="y_msg_container" id="yui_3_16_0_1_1426564670136_2738" style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;" dir="ltr">$ perl -Mstrict -Mwarnings -e 'my $key=shift || "A"; my %hash=(A=>1, B=>2); print $hash{$key}, "\n"' B<br>2<br></div><div class="y_msg_container" id="yui_3_16_0_1_1426564670136_2793" style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;" dir="ltr">Thanks,</div><div class="y_msg_container" id="yui_3_16_0_1_1426564670136_2674" style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;" dir="ltr">Mike</div><div class="y_msg_container" id="yui_3_16_0_1_1426564670136_2700" style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;"> </div><div id="yui_3_16_0_1_1426564670136_2699" style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;" dir="ltr"> mrdvt92</div><div id="yui_3_16_0_1_1426564670136_2698" style="font-family: times new roman, new york, times, serif; font-size: 16px;"> </div>  </div></body></html>