$chart->plot2d($val1) if $val == 1; $chart->plot2d($val1,$val2) if $val == 2; $chart->plot2d($val1,$val2,$val3) if $val == 3; etc... #### my @datasets; for my $i (...) { .... push @datasets, Chart::Gnuplot::DataSet->new(...); $chart->plot2d(@datasets); }