The following piece of code shows how internal Spectra data (fix_positions, ioni1, data_1, data_2, ...) are written to an external file.
#!/usr/bin/env perl use strict; use Spectra; my $fix_positions = SCAN->locate( name => "fix_positions") or die " failed to locate fix_positions "; my $ioni1 = SCAN->locate( name => "ioni1") or die " failed to locate ioni1 "; open( FH, ">out.lis"); foreach my $i ( 0 .. (scalar( @{$fix_positions->{y}}) - 1)) { my $name = "DATA_" . ($i + 1); my $data = SCAN->locate( name => $name) or die "failed locate $name"; foreach my $chan ( 0 .. (scalar( @{ $data->{y}}) - 1)) { print FH $fix_positions->{ y}[ $i] . " " . $ioni1->{y}[$i] . " " . $chan . " " . $data->{ y}[ $chan] . "\n"; } print FH "\n"; } close( FH); 1;