in reply to triyng to built a module

Tip #1 from the Basic debugging checklist: use diagnostics:

(F) You've said "use strict" or "use strict vars", which indicates + that all variables must either be lexically scoped (using "my" or +"state"), declared beforehand using "our", or explicitly qualified to say which package the global variable is in (using "::").

Declare all variables with my:

use strict; use warnings; my $char = chr(0x394); my $code = ord($char); printf "char %s is code %d, %#04x\n", $char, $code, $code;

See also: perlintro

UPDATE: Geez, this problem was solved for you a month ago :(