If you use binmode, the problem goes away. For example:
#!/usr/bin/perl
use strict;
use warnings;
binmode STDOUT, ':encoding(utf8)';
my $file = '/root/Desktop/russian';
open FILE, "<:utf8", $file or die $!;
my (@data1) = <FILE>;
close(FILE);
use open(':encoding(utf8)');
open( FILE, $file ) or die "can not open $file";
my (@data2) = <FILE>;
close(FILE);
die "different size" if scalar @data1 != scalar @data2;
while (@data1) {
my $s1 = shift @data1;
my $s2 = shift @data2;
print "1: $s1\n2: $s2\n";
die "different data" if $s1 ne $s2;
}