Я написал perl-скрипт для сопоставления двух наборов данных. Когда я запускаю программу, используя терминал Linux, вывод испорчен. Кажется, что выход перекрывается. Я использую Fedora 25. Я пробовал код в Windows, и он отлично работает.perl output messed up в fedora, ubuntu
Такая же проблема есть и на Ubuntu.
DESIRED:
адам 123 JOHN 321
TOM 473 BENTLY 564
и так далее ....
ВЫВОД, что я получаю:
ADAM 123n 321
TOM 473TLY 564
и т. Д.
Я проверил код на Windows, и он отлично работает. Хотя та же проблема остается на Ubuntu 16.04 lts.
помогите пожалуйста.
код:
use warnings;
open F, "friendship_network_wo_weights1.txt", or die;
open G, "username_gender_1.txt", or die;
while (<G>){
chomp $_;
my @a = split /\t/, $_;
$list{$a[0]} = $a[1];
}
close G;
while (<F>){
chomp $_;
my @b = split /\t/, $_;
if ((exists $list{$b[0]}) && (exists $list{$b[1]})){
$get = "$b[0]\t${list{$b[0]}}\t$b[1]\t${list{$b[1]}}\n";
$get =~ s/\r//g;
print "$get";
}
}
close F;
Показать, что код поможет ... – Dada
У вас есть, вероятно, некоторые управляющие символы на выходе, возможно, прошли через вход. Перенесите вывод в файл и посмотрите на этот файл с помощью какого-либо редактора, отображающего эти символы (например, vim), или используйте hexdump или xxd. –
Части концов строк Windows, CR или '\ r', сделайте курсор влево на * nix, но не создавайте новую строку. – choroba