### *Always* check the return when you open a file! # open (FH3, ">lessons.txt"); open FH3, ">lessons.txt" or die "lessons.txt: $!\n"; print FH3 "Perl*Lesson1\n"; print FH3 "Perl*Lesson2\n"; print FH3 "Perl*Lesson3\n"; print FH3 "Java*Lesson1\n"; print FH3 "Java*Lesson2\n"; print FH3 "Java*Lesson3\n"; print FH3 "PHP*Lesson1\n"; print FH3 "PHP*Lesson2\n"; print FH3 "PHP*Lesson3\n"; ### Lots of wasted typing, there. Doing it as a single line was OK - or ### you could use a 'heredoc'. print FH3 <<'Text_Block'; Perl*Lesson1 Perl*Lesson2 [etc...] Text_Block ### Or you could even generate it - since it's all repetitive. for my $lng (qw/Perl Java PHP/){ print "$lng*Lesson$_\n" for 1..3 };