That’s because two pairs of square brackets were lost due to the absence of <code> tags. I believe the two statements within the loop were originally as follows:
@$_ = split /(?:,|\s)+/, $row; $#$_ != 2 ? next : push @{$data{$_->[2]}}, @$_[1, 0];
The first line treats $_ as an array reference and autovivifies the array @$_, populating it with the comma-and-whitespace-separated fields in $row. In the second line, $#$_ is the index of the last element in @$_, so if it is not 2 (corresponding to 3 fields) then this data line is skipped. If exactly 3 fields were extracted from $row into @$_, the second and first fields, in that order, are pushed onto the anonymous array $data{$_->[2]}, where $_->[2] is the name field. So after running the loop with the data given, the hash %data (formatted by Data::Dump) looks like this:
{ bill => [1427766556, 5], bob => [1427766557, 12, 1427766555, 10] }
To the OP: What makes this code look strange — apart from the missing square brackets — is:
Hope that helps,
| Athanasius <°(((>< contra mundum | Iustus alius egestas vitae, eros Piratica, |
In reply to Re^3: perl print to csv
by Athanasius
in thread perl print to csv
by bishop2001
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |