I must mix 3 files, and produce a little report but in line 23 and 31 is a warning of uninitalized value I really don't see the mistake.
Thank you in advance use warnings; @lfile0 = <DATA>; chomp @lfile0; @meses = qw(ene feb mar abr may jun jul ago sep oct nov dic); @files= glob "78*"; my %textos; for (@files){ open FILE,"<$_"; $textos{$_}=[<FILE>]; chomp @{$textos{$_}}; s/.{5}// for @{$textos{$_}}; } ($day,$month,$year) = (localtime)[3..5]; $dec = $day /10; $month++; $dec = 3 if $dec < 1; $year+=1900; $file = sprintf "vcl%02d%02d%4d.txt",$day,$month,$year; open FILEOUT, ">$file"; print FILEOUT "Resumen decadal \n" ; printf FILEOUT "$meses[$month-1]/$year;#%d \n",$dec ; $form = "%13s" x @files ; printf FILEOUT "%23s" . "$form\n",sort keys %textos ; for $line (5..50){ @str=(); for (sort keys %textos){ push @str,${$textos{$_}}[$line]; } $form = "%13s" x @files ; $form = "%-10s".$form."\n"; printf FILEOUT $form,$lfile0[$line-6],@str; } close FILEOUT; __END__ 1.A) B) C) D) E) F) 2.A) B) C) 3.A) 4.A) B) C) D) 5.A) B) C) 5.D) 6.A) 7.A) 8.A) B) C) D) 9.A) 10.A) B) C) 11.A) B) C) D) E) 12.A) B) C) D) E) F) ______________________ and example of the file to mix _________ this is the top Resumen decadal 78343 - Ene/2008;#2 1.A) tres B) 23.8 C) 32.6-19 D) 15.0-14 E) 29.9 F) 17.8 2.A) 49.5-17-18 B) 12.5-14 C) 27.8 3.A) 26.0 4.A) 5.0 B) 20.9-19 C) 0.2-13 D) 14.3 5.A) 110.6 B) 110.1-20 C) 2 1 1 1 5.D) 8 6.A) 10 7.A) 41.75 8.A) E B) 12.8-16 C) 8.9 D) 1.4 9.A) X 10.A) 3 B) 1 C) 5 11.A) 81 B) 54 C) 100-13 D) 33-19 E) 5 12.A) 7 B) 2 C) 0 D) X E) 0 F) X NNNN _______________this is the bottom