파일에서 모스 부호를 읽고 일반 텍스트로 변환하는 간단한 프로그램을 작성 중입니다. 나는 미친 약간의 실수를하고있다. 나는 perl에 익숙하지 않고 커맨드 라인에서 실행해야만한다. 아래는 내가받는 오류와 코드입니다. 내가 잘못 실행 한 것일 수도 있습니다. 나는 "perl -w Lott_Morse.pl morse.txt"를 명령 행에 입력하고있다. 어떤 도움을 주시면 감사하겠습니다.Perl - 인쇄에서 초기화되지 않은 값으로 인한 오류
오류 :
이Use of uninitialized value in print at Lott_CSC360_Morse2.pl line 31, <> line 7.
Use of uninitialized value in print at Lott_CSC360_Morse2.pl line 31, <> line 7.
Use of uninitialized value in print at Lott_CSC360_Morse2.pl line 31, <> line 7.
Use of uninitialized value in print at Lott_CSC360_Morse2.pl line 31, <> line 7.
Use of uninitialized value in print at Lott_CSC360_Morse2.pl line 31, <> line 7.
Use of uninitialized value in print at Lott_CSC360_Morse2.pl line 31, <> line 7.
The message is 0Jessicas-MacBook-Pro:Documents
코드 :
#!/usr/bin/perl
use 5.010;
use warnings;
%morse_to_plain=(
".-" =>"A", "-..." => "B", "-.-." => "C", "-.." => "D", "." => "E",
"..-." => "F", "--." => "G", "...." => "H", ".." => "I", ".---" => "J",
"-.-" => "K", ".-.." => "L", "--" => "M", "-." => "N", "---" => "O",
".--." => "P", "--.-" => "Q", ".-." => "R", "..." => "S", "-" => "T",
"..-" => "U", "...-" => "V", ".--" => "W", "-..-" => "X", "-.--" => "Y",
"--.." => "Z", "-----" => "0", ".----" => "1", "..---" => "2", "...--" => "3",
"....-" => "4", "....." => "5", "-...." => "6", "--..." => "7", "---.." => "8",
"----." => "9", ".-.-.-" => ".", "--..--" => ",", "..--.." => "?", ".----." => "'",
"-....-" => "-", ".-..-." => '"', ".--.-." => "@", "-...-" => "=", "!" => " "
);
chomp(@message = <>);
print "The message is ";
foreach $char (@message)
{
print $morse_to_plain{$char};
}
더 이상 오류가 발생하지 않지만 파일의 첫 번째 행만 읽습니다. 모든 내용을 읽어야합니다. – JLott
@JLott 스칼라 컨텍스트에서'<>'를 사용하면 한 줄만 읽습니다. 내가 당신이라면 while (<>) 루프를 사용하고 줄을 하나씩 읽습니다. – TLP
@JLott - 파일을 읽으 려한다는 것을 몰랐기 때문에 사과드립니다. 그것을 위해 스크립트를 조정했습니다. [TLP] (http://stackoverflow.com/users/725418/tlp)의 제안을 통합 해보십시오. – Kenosis