zoglmannk / Morse-Code-Ninja

Software used to generate Morse Code Ninja practice sets as found on https://morsecode.ninja/practice/index.html

Home Page:https://morsecode.ninja

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Cannot start render.pl with perl v5.26.1

krasoffski opened this issue · comments

I have perl5 with version

 perl -v

This is perl 5, version 26, subversion 1 (v5.26.1) built for x86_64-linux-gnu-thread-multi
(with 71 registered patches, see perl -V for more detail)

Trying to run ./render.pl I got following error:

./render.pl --help
Experimental keys on scalar is now forbidden at ./render.pl line 364.
Type of arg 1 to keys must be hash or array (not anonymous hash ({})) at ./render.pl line 364, near "} }"
BEGIN not safe after errors--compilation aborted at ./render.pl line 786.

Addional info perl -Mdiagnostics render.pl

Subroutine main::getcwd redefined at render.pl line 13 (#1)
    (W redefine) You redefined a subroutine.  To suppress this warning, say
    
        {
            no warnings 'redefine';
            eval "sub name { ... }";
        }
    
Experimental keys on scalar is now forbidden at render.pl line 364.
Type of arg 1 to keys must be hash or array (not anonymous hash ({})) at render.pl line 364, near "} }"
BEGIN not safe after errors--compilation aborted at render.pl line 786 (#2)
    (F) An experimental feature added in Perl 5.14 allowed each, keys,
    push, pop, shift, splice, unshift, and values to be called with a
    scalar argument.  This experiment is considered unsuccessful, and
    has been removed.  The postderef feature may meet your needs better.
    
Uncaught exception from user code:
	Experimental keys on scalar is now forbidden at render.pl line 364.
	Type of arg 1 to keys must be hash or array (not anonymous hash ({})) at render.pl line 364, near "} }"
	BEGIN not safe after errors--compilation aborted at render.pl line 786.

P.S. With v5.16 there is no such error but I faced different problem in docker container.

This should now be fixed. I replaced the uniq function with something that works on newer and older versions of Perl. It is now on the main branch.