http://search.cpan.org/dist/Net-Google-Spreadsheets/

やっとのことでリリースしましたよ。こんなの作るだけで2週間もかかってるとか信じられません。トロいよ。トロすぎるよ。使い方はSYNOPSISから転載すると

  use Net::Google::Spreadsheets;

  my $service = Net::Google::Spreadsheets->new(
    username => 'myname@gmail.com', 
    password => 'mypassword'
  );
  
  my @spreadsheets = $service->spreadsheets();

  # find a spreadsheet by key

  my $spreadsheet = $service->spreadsheet(
    {
        key => 'key_of_a_spreasheet'
    }
  );

  # find a spreadsheet by title

  my $spreadsheet_by_title = $service->spreadsheet(
    {
        title => 'list for new year cards'
    }
  );

  # find a worksheet by title

  my $worksheet = $spreadsheet->worksheet(
    {
        title => 'Sheet1'
    }
  );

  # create a worksheet

  my $new_worksheet = $spreadsheet->add_worksheet(
    {
        title => 'Sheet2',
        row_count => 100,
        col_count => 3,
    }
  );

  # update cell by batch request

  $worksheet->batchupdate_cell(
    {row => 1, col => 1, input_value => 'name'},
    {row => 1, col => 2, input_value => 'nick'},
    {row => 1, col => 3, input_value => 'mail'},
  );

  # get a cell

  my $cell = $worksheet->cell({col => 1, row => 1});

  # update input value of a cell

  $cell->input_value('new value');

  # add a row

  my $new_row = $worksheet->add_row(
    {
        name => 'Nobuo Danjou',
        nick => 'lopnor',
        mail => 'nobuo.danjou@gmail.com',
    }
  );

  # fetch rows

  my @rows = $worksheet->rows;

  # search a row

  my $row = $worksheet->row({sq => 'name = "Nobuo Danjou"'});

  # update content of a row

  $row->content(
    {
        nick => 'lopnor',
        mail => 'nobuo.danjou@gmail.com',
    }
  );

と、こんな感じ。コードはなんか中途半端だけどまずはリリース優先で出しちゃいました。サラのワークシートを作ってrowを使いたいときは、まずbatchupdate_cellで1行目にカラム名を入れないといけないので注意です。