It is actually possible:
use strict;
use warnings;
use Win32::OLE;
use Win32::OLE::Const "Microsoft Excel";
my $xls = Win32::OLE->new('Excel.Application');
$xls->Workbooks->Add();
$xls->{Visible} = 1;
my @series_a = (1,2,3,4,5,6);
my $series_string_a = join(',',@series_a);
my @series_b = (6,5,4,3,2,1);
my $series_string_b = join(',',@series_b);
$xls->Charts->Add();
$xls->ActiveChart->SeriesCollection->NewSeries();
$xls->ActiveChart->SeriesCollection(1)->{Values} = "={".$series_string
+_a."}";
$xls->ActiveChart->SeriesCollection->NewSeries();
$xls->ActiveChart->SeriesCollection(2)->{Values} = "={".$series_string
+_b."}";
$xls->ActiveChart->Location({ Where => xlLocationAsObject, Name =>'She
+et1'});