2017-02-21 32 views
-3

Скрипт, который я запускал в windows с клубничным perl, работает и отлично дает результаты, но тот же скрипт на машине unix/Linux не работает , Может ли кто-нибудь помочь в этом. В windows я использую версию perl 5.20.1, а в Ubuntu у меня версия perl 5.22.1.Скрипт, который я запускал в windows с strawberry perl, не работает в unix-машине

Вот мой код

use strict; 
use warnings; 

my $fname = '/hadoop/user/Kishore/Temp1.txt'; 
open my $afile, "<", $fname or die "Couldn't open $fname: $!"; 
my %a_lines; 
my %b_lines; 
my $count1=0; 
while (my $line = <$afile>) { 
    chop $line; 
    $a_lines{$line} = undef; 
    $count1=$count1+1; 
} 
print"File1 records count : $count1\n"; 

close $afile; 
$fname = '/hadoop/user/Kishore/Temp2.txt'; 
my $OUTPUT = '/hadoop/user/Kishore/final_result.txt'; 
open my $bfile, "<", $fname or die "Couldn't open $fname: $!"; 
open (OUTPUT, ">$OUTPUT") or die "Cannot open $OUTPUT \n"; 
my $count=0; 
my $count2=0; 
while (my $line = <$bfile>) { 
    chop $line; 
    $b_lines{$line} = undef; 
    $count2=$count2+1; 
    next if exists $a_lines{$line}; 
    $count=$count+1; 
    print OUTPUT "$line \t===> The Line which is selected from file2/arg2 is mismatching/not available in file1\n"; 
} 
print "File2 records count : $count2\n"; 
print "Total mismatching/unavailable records in file1 : $count\n"; 
close $bfile; 
close OUTPUT; 
+2

Вы используете 'chop' , а не 'chomp'. Это _might_ будет проблемой, если ваши файлы имеют окончания строки Windows. – simbabque

+6

Что значит «не работает»? – Toto

+0

Не могли бы вы описать результат ожидания и результат, который у вас есть на Linux? Любое сообщение об ошибке? Какие принты работают и какие из них не отображаются? – JeromeFr

ответ

1

Вы, вероятно, возникли проблемы с символами конца строки для Windows на компьютере Linux

Заменить chop с s/\R\z// и он должен работать правильно

+0

Привет, Бородин, попробовал заменить данный формат, но он не разрешил мою проблему, я взял входной файл только на машине Linux. Я думаю, что нет никаких проблем с окончанием строки. – nmkishore