Moduł Acme::Morse

Uniwersytet Gdański - Instytut Matematyki - Zakład Informatyki - Strona domowa

Moduł Acme::Morse

Co to jest?

Moduł Acme::Morse służy do pisania perlowych programów w "alfabecie Morse'a".

Jak użyć?

use Acme::Morse; print "S-O-S\n";

Po pierwszym wykonaniu wygląda tak:

use Acme::Morse; .--.-..--..---.-.--..--.-..--..---.-.--. .-.-........---..-..---.-..-.--..---.--. ..-.---......-...-...-..--..-.-.-.--.-.. ----..-.-.--.-..--..-.-...---.-..---.--. .-...-..--.---...-.-....

Jak widać moduł jest prosty i łatwy w obsłudze. Zapaleńcy mogą od razu pisać "morsem".

Jak to zrobili?

Tak na prawdę, to program nie jest tłumaczony na prawdziwy alfabet Morse'a.

Najpierw usuwane jest z kodu use Acme::Morse;. Następnie znaki są dekodowane do postaci binarnej (funkcja unpack), potem '0' są zamieniane na '.', a '1' na '-'. Wiersze są dzielone po 40 znaków, a oryginalny plik nadpisywany z dodaniem use Acme::Morse; na początku.

Uruchamianie zakodowanego programu odbywa się podobnie.

Plik jest wczytywany, łączony w jeden napis i usuwa się z niego use Acme::Morse;. Następnie jest sprawdzana poprawność kodu morsa i istnienie znacznika. Jeżeli wszystko jest w porządku, to '.' i '-' zostają zamienione na '0' i '1'. Wartości bninarne są kodowane na znaki (funkcja pack). Na koniec odczytany kod jest uruchamiany eval'em.

Na koniec przykład programu, który raz będzie tłumaczony na morsa, a raz sam się zdekoduje. use Acme::Morse; #tu wstaw jakiś kod open 0; $_=<0>; $_=join //,<0>; close 0; $_=decypher $_; open 0, ">$0"; print {0} "use Acme::Morse;\n$_";

Dodatkowe informacje

Dokumentacja

Oryginalna dokumentacja na CPANie.

Kontakt i informacje o autorze opracowania

Autor: Marek Kwiatkowski

Email: songo@(bez_tego)manta.univ.gda.pl

Uniwersytet Gdański - Instytut Informatyki - Strona domowa - Perl - Wyklady
[c] Piotr Arłukowicz, materiały z tej strony udostępnione są na licencji GNU.