Во-первых, обратите внимание, что наличие подпрограммы print
с тем же именем, что и у встроенной функции , может вызвать большую путаницу (если не perl
определенно для вас или любого, кто нужно прочитать ваш код).
Во-вторых, я не наблюдаю проблему с:
#!/usr/bin/perl
use strict; use warnings;
use threads;
my $th = threads->create(\&print, "Hello thread World!\n");
$th->join();
sub print {
binmode(STDOUT, ":encoding(ISO-8859-1)");
print @_;
}
Выход:
C:\Temp> t
Hello thread World!
Однако, поскольку STDOUT
является переменной пакета, я бы не рекомендовал делать что-либо подобное.
Вы должны опубликовать короткий, но полный сценарий, в котором описана проблема, а не биты и кусочки, а также описано, что вы пытаетесь сделать, а не просто механические действия.