Pase esto como el primer argumento:
C=("").char;_G[C(112,114,105,110,116)](C(72,101,108,108,111,44,32,87,111,114,108,100,33))
Suponiendo que el código original está en un archivo tehtmi.lua, ejecute (en bash o un shell similar):
lua tehtmi.lua 'C=("").char;_G[C(112,114,105,110,116)](C(72,101,108,108,111,44,32,87,111,114,108,100,33))'
También funciona en Lua 5.3, que es lo que usa TIO, entonces, ¿por qué no lo prueba en línea ? No he probado en una implementación que utiliza el núcleo "PUC-Rio's Lua 5.1" (porque realmente no puedo encontrar ninguna información), pero mi solución probablemente también funcione allí.
¿Cómo?
Ejecuta el primer argumento como código, pero solo si contiene menos de 5 caracteres en minúscula.
El truco es correr print("Hello, World!"). Otra forma de ejecutar esto es mediante el uso _G["print"]("Hello, World!"), que solo utiliza cadenas.
Pero no podemos usar la cadena directamente debido a la restricción de recuento en minúsculas, sin embargo, puede ejecutar ("").charpara obtener la función string.char, que puede convertir de una serie de bytes a una cadena. Lo asigné a una variable en mayúscula (para que no lleguemos al límite) para que podamos usarlo para construir tanto printlas Hello, World!cadenas como las que se pueden usar como se indica arriba.