in reply to How to read in and write out Unicode (UTF-8) file in Greek

You decoded the characters on input, but you didn't encode them on output.

open IN, '<:encoding(UTF-8)', "WE_EX.txt" open OUT, '>:encoding(UTF-8)', "WE_EX.out"

You don't have a infinite loop. The program is waiting for input from the keyboard because you are reading from ARGV instead of IN.

while (<IN>) {

You are needlessly using global variables for your file handles.

use strict; use warnings; open(my $IN, '<:encoding(UTF-8)', 'WE_EX.txt') or die "Can't open file WE_EX.txt for reading: $!"; open(my $OUT, '>:encoding(UTF-8)', 'WE_EX.out') or die "Can't open file WE_EX.out for writing: $!"; while (<$IN>) { # ... Manipulate $_ ... print $OUT $_; } close $IN; close $OUT;

Replies are listed 'Best First'.
Re^2: How to read in and write out Unicode (UTF-8) file in Greek
by Anonymous Monk on Jun 07, 2011 at 03:00 UTC
    Some people might say it is OK to use global variables for filehandles. I think the my $IN notation is confusing for noobs, and many examples in tutorials use global variables for filehandles. One thing for sure, they won't break your program (although they could potentially lead to hard-to-find bugs if you write a complex program with different libraries or subroutines.)