in reply to Refactoring nested if block

Does this help?
<i> sub WriteSpinData { my ($OUT_FH) = shift @_; my ($ref_data) = shift @_; my ($last_major_frame, $line, @cur_spin ); #@cur_spin holds spin d +ata for latest chunk my ($row_length) = 15*160+1; for my $filename (sort keys %{ $ref_data }) { my ($basename) = basename $filename; for my $major_frame_index ( sort { $a <=> $b } keys %{ $ref_da +ta->{$filename} }) { ### Processing data for $basename [===| ] % d +one for my $minor_frame_index (keys %{ $ref_data->{$filename}- +>{$major_frame_index} }) { next if ($minor_frame_index !~ /\d+/); my @minor_frame_data = @{ $ref_data->{$filename}->{$m +ajor_frame_index}->{$minor_frame_index} }; my $cur_spin_cnt = (scalar @cur_spin > 0) ? scalar @cu +r_spin : 0; if ($cur_spin_cnt == 0) { if (($minor_frame_data[3] == 165) and (($minor_frame_index % 10) == 0) ) { my $index = "$filename,$major_frame_index,$min +or_frame_index"; @cur_spin = ($index, @minor_frame_data[3..17]) +; } next; } if ( ($cur_spin_cnt < $row_length) ) { push @cur_spin, @minor_frame_data[3..17]; next; } if ($cur_spin_cnt == $row_length) { push @cur_spin, @minor_frame_data[3..17]; my $line = join ",", @cur_spin; print $OUT_FH "$line\n"; @cur_spin = (); next; } croak "should not be here - cur_spin_cnt $cur_spin_cnt +, $filename,$major_frame_index,$minor_frame_index\n"; } $last_major_frame = $major_frame_index; } print "$basename: " . int($last_major_frame) . " major frames. +\n"; } } </i>

-QM
--
Quantum Mechanics: The dreams stuff is made of