ฉันกำลังพยายามสอนตัวเองด้วยภาษา Perl และฉันก็ประสบปัญหา... เมื่อคืนฉันทำโปรแกรมคำนวณค่าเฉลี่ยของชุดตัวเลขที่ผู้ใช้ระบุเพื่อเรียนรู้เกี่ยวกับรายการและการป้อนข้อมูลของผู้ใช้ ดังนั้นวันนี้ฉันคิดว่าฉันจะทำ เครื่องถอดรหัสรหัสมอร์สเพื่อเรียนรู้เกี่ยวกับแฮช ฉันได้ดูหนังสือที่ฉันซื้อแล้ว แต่มันไม่ได้อธิบายแฮชได้ดีมาก... จริงๆ แล้วมันไม่ได้อธิบายสิ่งต่าง ๆ มากมายได้ดีมาก ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม!
ยังไงก็ตาม ผมอยากเขียนโปรแกรมถอดรหัสรหัสมอร์สที่ผู้ใช้ป้อนเข้าไป ดังนั้นผู้ใช้จะป้อน:
-.-.
.-
-
...
!
.-.
..-
.-..
.
เครื่องหมายอัศเจรีย์จะหมายถึงคำที่แยกจากกัน ข้อความนี้จะส่งคืน "กฎของแมว" ให้กับผู้ใช้ ด้านล่างนี้คือโค้ดที่ผมมีจนถึงตอนนี้... จำไว้ครับ.. ผมเขียนโปรแกรมด้วยภาษา Perl ไม่ถึง 24 ชั่วโมง 555
รหัส:
use 5.010;
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', '.----' =>'1', '..---' =>'2',
'...--' =>'3', '....-' =>'4', '.....' =>'5', '-....' =>'6',
'--...' =>'7', '---..' =>'8', '----.' =>'9', '-----' =>'0',
'.-.-.-'=>'.', '--..--'=>',', '---...'=>':', '..--..'=>'?',
'.----.'=>'\'', '-...-' =>'-', '-..-.' =>'/', '.-..-.'=>'\"'
);
my @k = keys %morsecode;
my @v = values %morsecode;
say "Enter a message in morse code separated by a line. Use the exclamation point (!) to separate words. Hit Control+D to signal the end of input.";
my @message = <STDIN>;
chomp @message;
my $decodedMessage = encode(@message);
sub encode {
foreach @_ {
if (@_ == @k) {
return @k;
#This is where I am confused... I am going to have to add the values to an array, but I don't really know how to go about it.
}
else if(@_ == '!') {return ' '}
else
{
return 'Input is not valid';
}
}
}
use warnings;
และuse strict;
ลงในโค้ดทั้งหมดของคุณเพื่อช่วยตรวจจับข้อผิดพลาด - person Craig Treptow   schedule 26.01.2013use strict;
และuse warnings;
ไว้ที่ด้านบนสุดของสคริปต์ พวกเขาช่วยได้ แม้ว่าคุณอาจจะไม่ชอบพวกเขาในตอนแรกก็ตาม ตัวเลือกที่เหมาะสมของโปรเจ็กต์ที่ 1 สำหรับการเรียนรู้เกี่ยวกับแฮช - person William   schedule 26.01.2013@k
และ@v
ไม่มีจุดหมาย นอกจากนี้ย่อยของคุณควรเรียกว่าdecode
ไม่ใช่encode
- person Brad Gilbert   schedule 26.01.2013