in reply to Salesforce Data Parser

Welcome to the Monastery!

I think you'd be better off not making an API call each time through while. This may help the speed issue. What it does is it gathers all the data up front, then loops over the saved array reference, and for each element (which are hash references), extracts the name value and populates your array with it. It's UNTESTED.

$tableattribute_ref = $sforce->describeGlobal()->result->{sobjects}; my @names; for my $href (@{ $tableattribute_ref }) { push @names, $href->{name}; }

Edit: Regarding the brackets/parens, the outer part of your structure is an array reference which always uses [], and the inner elements are hash references, which are always denoted by {}. You won't see parens in such a data structure.

-stevieb

Replies are listed 'Best First'.
Re^2: Salesforce Data Parser
by bigdatageek (Novice) on Aug 06, 2015 at 16:13 UTC
    Thank you so much!! Haha, I tried so many variations of for, foreach, hash keys, etc. and just could not get it. That worked and it does exactly what I want. Again, thanks so much!

      You're very welcome, I'm glad it worked.

      A little more info on when you said "is ALMOST an Array of Hashes". When printing with Data::Dumper, you always pass in a reference to the structure you're printing, so if the outermost part of the structure is an array (), it'll automatically get converted to [] in the output as you've passed in a reference to the array. In fact, the API itself returns the array as a reference in the first place, so you wouldn't need to take a reference to it when passing it into Dumper. These are equivalent when referring to Data::Dumper...

      my @array = (1, 2, 3); print Dumper \@array;
      my $aref = [1, 2, 3]; print Dumper $aref;

      So it is really an Array of Hashes (AoH), it just looks a tiny bit different when the outermost part of the structure is a reference. You also need to access and use them slightly differently as well (by using dereference operators).

        So is the dereference operator \@array or the use of ->?