Perl Chart:: Gnuplot - доступ к ASCII-выходу plot2d


Я использую модуль Perl Chart:: Gnuplot для создания некоторых графиков ASCII с помощью terminal 'dumb'.

Вместо того, чтобы функция plot2d непосредственно печатала результаты построения, я хотел бы записать красиво отформатированный участок ASCII во временную переменную, чтобы я мог распечатать его позже.

Вот MWE того, что я делаю, показывая, что работает, а что нет.
use strict;
use warnings;
use Chart::Gnuplot;

my @xvals=(1...10);
my @yvals=(1...10);


my $chart = Chart::Gnuplot->new( 
    terminal=>'dumb',
    xrange => [0, 10], 
    yrange => [0, 10], 
);

my $dataset = Chart::Gnuplot::DataSet->new(
    style => "dots",    
    xdata => @xvals,
    ydata => @yvals

);

$chart->plot2d($dataset);                  # This works


my $textplot = $chart->plot2d($dataset);   # This does not work, nor did I expect it to
print($textplot);                          # Prints a hash ref like "Chart::Gnuplot=HASH(0x6000cbb80)"

Как я уже упоминал, я не ожидал, что plot2d непосредственно выведет сюжет, но мне интересно, есть ли какой-то метод / функция / все, что позволит мне сделать это. Могу ли я сказать plot2d построить график в строковую переменную вместо STDOUT?

Спасибо!

1 2

1 ответ:

Создайте временный файл (скажем, используя File:: Temp ) и передайте его путь к параметру output конструктора. Вы можете собрать выходные данные из этого временного файла.