Windows 시스템에서 UNIX 시스템으로 스크립트를 이동 한 후 매우 이상한 문제가 발생했습니다. 나는 읽는데 서브를 작성하고 펄 5.16.3와 Windows에서 성공을 테스트하지만 펄 5.14.2해시 키 문제
sub READIN
{
my (%tmp, $val, $key);
open (DAT, "$_[0]")or die "Thou shalt not open this file, so I generated an error: $! \n";
while (<DAT>)
{
chomp;
($val, $key) = split (/;/);
#print "Value -> $val - Key_for_Hash -> $key\n"; *#DBG - Works!*
$tmp{$key} = exists $tmp{$key}? "$val" : $val;
#print "ValueH -> $tmp{$key} - Key_for_HashH -> $key\n"; *#DBG - Works!*
#print "KeyH-> $key - ValueH -> $tmp{$key}\n"; *#DBG - doesn't work, cuts of everything before " - ValueH....."*
#print "Value2 -> $val - Key_for_Hash2 -> $key\n\n";*#DBG - Works!*
}
close DAT or die "Filehandle is grumpy today and dislikes your Idea to be closed as of $\n";
return %tmp;
}
와 유닉스에서 나는 데이터 : 덤퍼 인도 표준시로 얻을 출력을 작동하지 않습니다했습니다 KAP
16.15.2.1.4.1,
16.15.2.1.4.1을 제거,
16.1.9.0이 :
$VAR1 = {
' => '18.15.7.1.39.',
' => '19.15.7.1.39.',
' => '19.15.9.1.6.1.',
' => '19.15.7.1.6.',
' => '19.15.1.',
' => '18.15.1.',
' => '18.15.7.1.36.',
' => '18.15.7.1.34.',
' => '18.15.7.1.1.',
' => '18.15.7.1.33.',
' => '18.1.9.0',
' => '19.15.7.1.36.',
' => '16.15.2.1.4.1',
' => '18.15.7.1.38.',
' => '19.15.9.1.13.',
' => '18.15.9.1.6.1.',
' => '16.1.9.0',
' => '19.15.7.1.33.',
' => '19.15.7.1.37.',
' => '19.1.9.0',
' => '19.15.9.1.3.',e
' => '19.15.7.1.4.',
' => '19.15.7.1.38.',
' => '19.15.7.1.34.',
'radioid2e' => '19.15.7.1.1.',
' => '16.15.2.1.4.1',
' => '19.15.7.1.35.',
' => '18.15.7.1.35.'
};
마지막으로,이 내가 파일에서 읽고 있어요 데이터입니다 ; mod,314,960,453,210 18.1.9.0; rid2
18.15.7.1.35]. tdmkapt2
18.15.7.1.38]. tdmkapr2
18.15.7.1.34]. modt2
18.15.7.1.33]. modr2
18.15 .9.1.6.1]. tdmkap2
18.15.7.1.36]. etht2
18.15.7.1.39]. ethr2
18.15.1]. RT2
18.15.7.1.1]. radioid2
19.1.9.0 ; rid2e
19.15.7.1.35.; tdmkapt2e
,19.15.7.1.38]. tdmkapr2e
19.15.7.1.34].
19.15.7.1.33을 modt2e]. modr2e
19.15.9.1.6.1]. tdmkap2e
19.15.7.1.36]. etht2e
을 19.15.7.1.39]. ethr2e
19.15.1;.. lm2e
19.15.9.1.3;.. um2e
19.15.7.1.37 단계;
19.15.7.1.4을 rt2e glokapam2e
19.15 9.1.13 .; ethkapam2e
19.15.7.1.6.; acmcpm
19.15.7.1.1.; radioid2e
누군가 내가 잘못하고있는 것을 지적 할 수 있습니까? 아니면 5.14.6의 일반적인 문제입니까?
// 편집 :
$VAR1 = {
'rid2e' => '19.1.9.0',
'rt2' => '18.15.1.',
'ethkapam2e' => '19.15.9.1.13.',
'etht2' => '18.15.7.1.36.',
'etht2e' => '19.15.7.1.36.',
'tdmkapt2e' => '19.15.7.1.35.',
'tdmkapr2' => '18.15.7.1.38.',
'tdmkapt2' => '18.15.7.1.35.',
'ethr2' => '18.15.7.1.39.',
'ethr2e' => '19.15.7.1.39.',
'tdmkap2e' => '19.15.9.1.6.1.',
'acmcpm' => '19.15.7.1.6.',
'rt2e' => '19.15.1.',
'modt2e' => '19.15.7.1.34.',
'modr2e' => '19.15.7.1.33.',
'um2e' => '19.15.7.1.4.',
'radioid2' => '18.15.7.1.1.',
'tdmkap2' => '18.15.9.1.6.1.',
'rid' => '16.1.9.0',
'modr2' => '18.15.7.1.33.',
'glokapam2e' => '19.15.9.1.3.',
'rid2' => '18.1.9.0',
'kap' => '16.15.2.1.4.1',
'tdmkapr2e' => '19.15.7.1.38.',
'radioid2e' => '19.15.7.1.1.',
'modt2' => '18.15.7.1.34.',
'mod' => '16.15.2.1.4.1',
'lm2e' => '19.15.7.1.37.'
};
출력이 어떻게 표시 될지 예상 할 수 없습니다. 더 잘 설명 할 수 있습니까? –
해당 값에 대한 키가이 행에있는 출력에 있어야합니다.''radioid2e '=> '19 .15.7.1.1.', 물론 다른 데이터가있는 경우 – user2982931