Hi hippo,
it seems to be kind of like that. I suspect that to be the case, because of how I initialized the array, but I'm puzzled as to why it occurs right now. It worked just last week.
The way this array comes to be is as follows:
I have a large hash with lots of information on an activity. It has an ID, multiple status values, an associated object, possibly multiple associated contacts and multiple instances of so-called activityData, which is the concrete content of the activity.
The content looks like this:
$VAR1 = {
'activityContacts' => [
{ 'foo' => 'bar', 'baz' => 'foo', ... },
{ 'foo' => 'bar', 'baz' => 'foo', ... }
],
'currentAgent' => {
'foo' => 'bar',
'baz' => 'foo',
...
},
'activityData' => [
{ 'textfeldMini' => ' ', 'fragebogen_id' => '4388', 'aktivitae
+t_data_id' => '48541093', 'zahlfeld' => '0.0', 'aktivitaetId' => '485
+41091' },
{ 'fragebogen_id' => '4389', 'aktivitaet_data_id' => '48541094
+', 'zahlfeld' => '0.0', 'aktivitaetId' => '48541091' },
{ 'fragebogen_id' => '4390', 'aktivitaet_data_id' => '48541095
+', 'zahlfeld' => '0.0', 'aktivitaetId' => '48541091' },
{ 'fragebogen_id' => '4391', 'textfeldStandard' => ' ', 'aktiv
+itaet_data_id' => '48541096', 'zahlfeld' => '0.0', 'aktivitaetId' =>
+'48541091' },
{ 'fragebogen_id' => '4392', 'textfeldStandard' => ' ', 'aktiv
+itaet_data_id' => '48541097', 'zahlfeld' => '0.0', 'aktivitaetId' =>
+'48541091' },
{ 'textfeldMini' => ' ', 'fragebogen_id' => '4393', 'aktivitae
+t_data_id' => '48541098', 'zahlfeld' => '0.0', 'aktivitaetId' => '485
+41091' },
{ 'textfeldMini' => 'k.A.', 'fragebogen_id' => '4394', 'aktivi
+taet_data_id' => '48541099', 'zahlfeld' => '0.0', 'aktivitaetId' => '
+48541091' },
{ 'fragebogen_id' => '4395', 'textfeldStandard' => ' ', 'aktiv
+itaet_data_id' => '48541100', 'zahlfeld' => '0.0', 'aktivitaetId' =>
+'48541091' },
{ 'fragebogen_id' => '4396', 'textfeldStandard' => ' ', 'aktiv
+itaet_data_id' => '48541101', 'zahlfeld' => '0.0', 'aktivitaetId' =>
+'48541091' },
{ 'fragebogen_id' => '4397', 'textfeldStandard' => ' ', 'aktiv
+itaet_data_id' => '48541102', 'zahlfeld' => '0.0', 'aktivitaetId' =>
+'48541091' },
{ 'textfeldMini' => 'k.A.', 'fragebogen_id' => '4398', 'aktivi
+taet_data_id' => '48541103', 'zahlfeld' => '0.0', 'aktivitaetId' => '
+48541091' },
{ 'fragebogen_id' => '4399', 'textfeldStandard' => ' ', 'aktiv
+itaet_data_id' => '48541104', 'zahlfeld' => '0.0', 'aktivitaetId' =>
+'48541091' },
{ 'datumfeld' => '2000-01-01T00:00:00+01:00', 'fragebogen_id'
+=> '4400', 'aktivitaet_data_id' => '48541105', 'zahlfeld' => '0.0', '
+aktivitaetId' => '48541091' },
{ 'datumfeld' => '2000-01-01T01:00:00+01:00', 'fragebogen_id'
+=> '4401', 'aktivitaet_data_id' => '48541106', 'zahlfeld' => '0.0', '
+aktivitaetId' => '48541091' },
{ 'textfeldClob' => ' ', 'fragebogen_id' => '4402', 'aktivitae
+t_data_id' => '48541107', 'zahlfeld' => '0.0', 'aktivitaetId' => '485
+41091' },
{ 'textfeldClob' => ' ', 'fragebogen_id' => '4403', 'aktivitae
+t_data_id' => '48541108', 'zahlfeld' => '0.0', 'aktivitaetId' => '485
+41091' }
],
'activity' => {
'foo' => 'bar',
'baz' => 'foo',
...
}
};
Then I'm breaking that hash up like this:
my $aktAkt = $aktivitaet->{'activity'};
my @aktData = $aktivitaet->{'activityData'};
my $aktAgent = $aktivitaet->{'currentAgent'};
But that obviously doesn't work.
With your help I could figure it out why, now: Looking at the entire hash, the part of it that I want is encapsulated in a list, which can't be interated in the same way as an array can (square brackets instead of wavy ones). Changing my code to the following helped:
my $aktData = $aktivitaet->{'activityData'}; #Note the scalar variable
...
foreach my $data (@$aktData)
{
if ($data->{'fragebogen_id'} == $feedbackId)
{
#doStuff
}
}
Thanks for your help!
Now, I just have to figure out where that weird list comes from. I certainly didn't put it there...