in reply to Re^2: Trying to optimize de-referenced hash slice without scope variables...
in thread Trying to optimize de-referenced hash slice without scope variables...

Your $data and @_ are empty here, so this won't work the same because of autovivication. The number of $VAR variables is different, because you have a .. d in the first and a .. c in the second expample.

All of this should work if you actually fill $data and $_[3] with a hash reference that uses those keys.

  • Comment on Re^3: Trying to optimize de-referenced hash slice without scope variables...
  • Download Code

Replies are listed 'Best First'.
Re^4: Trying to optimize de-referenced hash slice without scope variables...
by monsieur_champs (Curate) on Jun 15, 2004 at 17:56 UTC

    Autovivification shouldn't fill in the data structure as I access it? So both the accesses should produce the same data structures (that's autovivification work, I guess), and Data::Dumper should produce the same result in both cases.

    BTW, here is the result, again:

    perl -MData::Dumper $data = { a=>'b', c=>'d', e=>'h', i=>'j' }; $_[3] = { a=>'b', c=>'d', e=>'h', i=>'j' }; print Dumper @$data{'a','c','e'}; print "\n"; print Dumper @{$_[3]}{'a','c','e'}; print "\n";
    and the result was:
    $VAR1 = 'b'; $VAR2 = 'd'; $VAR3 = 'h'; $VAR1 = 'b'; $VAR2 = 'd'; $VAR3 = 'h';
    exactly as expected. I'm confused. What's the problem with auto-vivification? Its supposed to fill in the "gore details", it isn't?

    Thank you for your time and patience!