[Omaha.pm] Pulling in a hash via "exec"...FAIL

Jay Hannah jay at jays.net
Thu Aug 7 07:50:36 PDT 2008


Dan Linder wrote:
> I thought of that but I couldn't find an comments regarding the differences
> caused by changing the hash (%fields) to a straight variable ($fields).  I
> know Perl doesn't do strict casting of variables, but this still looked odd
> to me.
>   

-ponder-   When you eval this

$fields = {
  'FIELD1' => {
                 FIRSTNAME => 'Joe',
                 LASTNAME => 'Smith'
  }


$fields is a hash reference. But in your first post you were scoping and 
returning %fields, which is a hash. Hence your version was scoping and 
returning a hash which had absolutely nothing to do with what your were 
eval'ing.

My change was scoping a scalar $fields, which the eval turns into a hash 
reference, and returns that. I assume this is what you meant to do.

You might want to stick these in the top of your program:

use strict;
use warnings;
use diagnostics;

Those should help you see typos in your code...

HTH,

j
(I still think eval is evil and you should use Storable. $0.02 -grin-)




More information about the Omaha-pm mailing list