【发布时间】:2013-01-22 09:26:12
【问题描述】:
我刚开始使用 Perl,我正在编写一个程序来读取一个文件并将该文件中的莫尔斯电码转换为另一个文件中的纯文本。我收到此错误,我无法弄清楚出了什么问题。任何帮助表示赞赏!
我收到的错误:
Jessicas-MacBook-Pro:Documents jessica$ perl -w Morse_to_Text.pl <Morse3.rtf> MorseTest.txt
Global symbol "$message" requires explicit package name at Morse_to_Text.pl line 20.
Global symbol "$message" requires explicit package name at Morse_to_Text.pl line 26.
Global symbol "$message" requires explicit package name at Morse_to_Text.pl line 26.
Global symbol "$message" requires explicit package name at Morse_to_Text.pl line 27.
代码:
#!/usr/bin/perl
use 5.010;
use strict;
use warnings;
my %morsecode=(
".-" =>"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", ".-.-.-" => ".", "--..--" => ",", "..--.." => "?", ".----." => "'",
"-....-" => "-", ".-..-." => '"', ".--.-." => "@", "-...-" => "=", "!" => " "
);
while (<>) {
chomp;
foreach my $char ( split ' ' ) {
$message = $morsecode{$char} + $message;
print $message;
};
}
【问题讨论】:
-
请注意,
.是字符串连接运算符。 perlop. -
如果要将字符串拆分为字符,则需要
split // -
你能详细说明一下。是字符串连接。我在您提供的文档中找不到它
-
"a" + "b" 给出零。 “一种” 。 “b”给出“ab”。在“加法运算符”下提到。
-
谢谢!很高兴知道哈哈!
标签: perl file file-io compiler-errors