Ese tipo de aplicaciones se pueden hacer con casi cualquier lenguaje. Basta con tengan alguna facilidad para guardar la información en forma de base de datos (o incluso en formato de texto).
En mi época se hacían con GWBasic, DBase III, Turbo Pascal, Delphi... Más tarde se hacían con Visual Basic, y en los últimos años, con lenguajes de cuarta generación o con herramientas prefabricadas o con bases de datos que incorporan elementos de programación, como el caso de FileMaker.
El aspecto gráfico es, sin duda, de una ventana DOS, tanto en MSDOS o la ventana de emulación de línea de comandos, en Windows. La emulación de los "bordes" se hacen con los caracteres gráficos del conjunto de caracteres
CP437 del MSDOS.
En Perl, no habría problemas en hacer algo así. Bastaría con tener la precaución de que el Windows cargue el controlador ANSY.SYS para que la ventana de MSDOS entienda las secuencias de posicionamiento y coloreado que emita Perl. O usar el módulo
Win32::Console o
Win32::Console::ANSI.
A un nivel más alto, tienes entornos de trabajo que manejan
widgets, como es el caso de
Tickit::Widget,
UI::Dialog. Y seguro que me dejo alguno más. Cuestión de buscar.