Aside from what moritz said, do you really need to have $part1 and $part2? Since you are parsing an array you'll have to go through the process of running all its values. There are quite a few ways to do that. You can
use the for loop to build the final string to be printed, and print it outside the block
@l=<F3>;
my $text = '';
for my $line (@l){
chomp $line;
my ($part1, $part2) = split /\*/,$line;
$text .= "$part1 $part2\n";
}
print $text;
create the single string right from the array values by joining them
@l=<F3>;
my $text = join '', @l;
$text =~ s/\*/ /g;
print $text;
use a different kind of block
@l=<F3>;
print map {s/\*/ /;$_;} @l;
|