#!/usr/bin/env perl use strict; use warnings; use Path::Class; use Spreadsheet::WriteExcel; use Text::CSV; my @csv_files = map { file($_) } @ARGV; my $ss = Spreadsheet::WriteExcel->new('combined.xls'); for my $csv_file (@csv_files) { my $name = $csv_file->stringify; $name =~ s/\.csv$//; my $ws = $ss->add_worksheet($name); my $parser = Text::CSV->new; my $fh = $csv_file->openr; my $row_num = 1; while (my $row = $parser->getline($fh)) { for my $col_num (0..$#$row) { $ws->write($row_num, $col_num, $row->[$col_num]); } $row_num++; } }