title: perl can't use undefined value as HASH reference
body: <p>I am refactoring this script and I really do not understand the errors that I get. </p>
  
  <pre><code>#!/sbcd/GSD/scripts/perl/bin/perl
  use DBI ;
  use strict ;
  use warnings;
  use Data::Dumper;
  my $dbUser = 'foo_01';
  my $dbPass = 'foo_01';
  my $dbSid  = 'foo.WORLD';
  my $dbh =  DBI-&gt;connect("dbi:Oracle:$dbSid","$dbUser","$dbPass") or die( "Couldn't connect: $!" );
  my %extend_hash=%{@_[0]};
  my @error_array=@{@_[1]};
  my @queries_array=();
  my %spec_hash=();
  my $query = "select e_risk_symbol from gsd_etds where level_name='EXCH_CS' and e_exch_dest='XISX' and e_symbol_comment in ('Bin_6','Bin_56')";
  
  if(!$dbh) { 
      print "Error connecting to DataBase; $DBI::errstr\n"; 
  }
      my $cur_msg = $dbh-&gt;prepare($query) or die "\n\nCould not prepare statement: ".$dbh-&gt;errstr;
      $cur_msg-&gt;execute();
      while (my @row=$cur_msg-&gt;fetchrow_array) {
           $spec_hash{'XISX'}{$row[0]}=1;
       }
  print Dumper(%spec_hash);
  </code></pre>
  
  <p>these are the errors: 
  I especially do not understand the can't use an undefined values as a HASH reference</p>
  
  <pre><code>walt $ ./pure_extend_database
  Scalar value @_[0] better written as $_[0] at ./pure_extend_database line 11.
  Scalar value @_[1] better written as $_[1] at ./pure_extend_database line 12.
  Can't use an undefined value as a HASH reference at ./pure_extend_database line 11.
  </code></pre>
  
  <p>This is what I get when I with the warning and strict ; </p>
  
  <pre><code>$VAR1 = 'XISX';
  $VAR2 = {
            'FCEL' =&gt; 1,
            'GPS' =&gt; 1,
            'MCO' =&gt; 1,
            'DPZ' =&gt; 1,
            'WM' =&gt; 1,
            'SPLS' =&gt; 1,
            'ILMN' =&gt; 1,
            'BWLD' =&gt; 1,
            'CTSH' =&gt; 1,
            'EWU' =&gt; 1,
            'MDVN' =&gt; 1,
            'PDCO' =&gt; 1,
  }; 
  </code></pre>