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;