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