The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Convert::Morse - Package to convert between ASCII text and MORSE alphabet.

SYNOPSIS

    use Convert::Morse qw(as_ascii as_morse is_morsable);

    print as_ascii('.... . .-.. .-.. ---  -- --- .-. ... .'),"\n";
                                                 # 'Helo Morse'
    print as_morse('Perl?'),"\n";                # '.--. . .-. .-.. ..--..'
    print "Yes!\n" if is_morsable('Helo Perl.'); # print "Yes!"

REQUIRES

perl5.6.0, Exporter

EXPORTS

Exports nothing on default, but can export as_ascii() and as_morse().

DESCRIPTION

This module lets you convert between normal ASCII text and international Morse code. You can redefine the token sets, if you like.

INPUT

ASCII text can have both lower and upper case, it will be converted to upper case prior to converting.

Morse code input consists of dashes '-' and dots '.'. The elements MUST NOT to have spaces between, e.g. A is '.-' and not '. -'. Characters MUST have at least one space between. Additonal spaces are left over to indicate word boundaries. This means '.- -...' means 'AB' and and '.- -...' means 'A B'.

The conversion routines are designed to be stable and ignore/skip unknown input, so that you can write:

        print as_ascii('Hello -- --- .-. ... .  Perl!');

beware, though, a single '.' or '-' at the end will be interpreted as '. ' respective '- ' and thus become 'E' or 'T'. Use Convert::Morse::error() to check wether all went ok or not.

OUTPUT

The output will always consist of upper case letters or, in case of as_morse(), of [-. ].

ERRORS

Unknown tokens in the input are ignored/skipped. In these cases you get the last error message with Convert::Morse::error().

FUNCTIONS

as_ascii()

            as_ascii();

Convert a Morse code text consisting of dashes and dots to ASCII.

as_morse()

            as_morse();

Convert a ASCII text to Morse code text consisting of dashes, dots and spaces.

is_morse()

            is_morse();

Return wether input is a true Morse code string or not.

is_morsable()

            is_morseable();

Return wether input can be completely expressed as Morse code or not.

error()

            error();

Returns the last error message or undef when no error occured.

LIMITATIONS

Can not yet do Japanese code nor German Umlaute.

BUGS

None known yet.

AUTHOR

Tels http://bloodgate.com in late 2000, 2004.