use YAML qw( DumpFile ); my @data = ( [ { "title" => "line 1", "style" => "lines" , "type" => "matrix" }, [ 1, 6318 ], [ 2, 7903 ], [ 3, 25617 ], ], [ { "title" => "line 2", "style" => "lines" , "type" => "matrix" }, [ 1, 6215 ], [ 2, 7831 ], [ 3, 25782 ], ], ); DumpFile( "output.txt", @data ) #### --- #YAML:1.0 - style: lines title: line 1 type: matrix - - 1 - 6318 - - 2 - 7903 - - 3 - 25617 --- #YAML:1.0 - style: lines title: line 2 type: matrix - - 1 - 6215 - - 2 - 7831 - - 3 - 25782 #### use YAML qw( LoadFile ); my @data = LoadFile( "output.txt" ); gnuplot({ "title" => "My Trend", "output type" => "png", "output file" => "$TMPDIR/trend-$$.png"}, @data );