#!/usr/bin/perl use Win32::OLE; use warnings; use strict; my @data; my $file      = 'lala.csv'; my $columns   = 5; my $csv_file    = 'zieldatei.csv'; my $excel = Win32::OLE->new(); $excel->add_worksheet('Hoffnung'); open(my $fh,'<',$file) or die $!;                            while(my $line = <$fh>) {                                                        chomp $line;                my @array = (split(/[\t\s\\]/,$line))[0..($columns1)];     foreach (@array) {       s/^\s+/;/g;                          s/\s+$/;/g;              } # foreach   push(@data,[@array]); } # while close ($fh); my $format = ''; for my $i(0..scalar(@{$data[0]})-1){           my $max = find_longest(map{$_->[$i]}@data);   $format .= '%-'.$max.'s '; } for my $entry(@data){   print sprintf($format . "<< ",@$entry); $excel->add_row('Hoffnung',$entry); } { return $excel->output_to_file($csv_file); return $longest; } my $file2 = 'hoffnung_30_08_2006.csv';     open($fh,'<',$file);     open(my $dod,'<',$file2) or die "geht nicht!";     open($dod,'>',$file2); while(<$fh>)   { print  $dod @data;    sub find_longest{                                                              my $longest = 0;   for(@_){       my $length = length($_);       $longest = $length if($length > $longest);   }   close ($dod);   close ($fh);