use strict; use warnings; open my $name_fh, '<', 'name.txt' or die "Couldn't open name.txt.\n$!"; my $y = 0; while ( <$name_fh> ) { chomp; next unless $_; # Skip empty filenames. my $name = $_ . '.txt'; open my $out_fh, '>', $name or die "Couldn't open $name for output:\n$!"; print $out_fh "Hello\n"; $y++; close $out_fh or die "Couldn't close output file $name.\n$!"; } close $name_fh; # Don't need to check for errors closing input files. print "Created $y files.\n";