Eine Listenbox zu erzeugen ist kein Problem, ein Dokument mit einer passenden Anwendung zu öffnen schon, da es ein sehr systemspezifischer Vorgang ist. Unter MacOS X benutzt man dafür zum Beispiel die C-Systemfunktionen
LSOpenFSRef oder
LSOpenCFURLRef, unter Win32
ShellExecute, unter GNOME
gnome_url_show,
Außerdem bringen viele Desktopumgebungen kleine Programme mit, die genau dafür gedacht sind, Dateien und URLs in passenden Applikationen zu öffnen. Unter MacOS X ist das zum Beispiel
open, unter Win32
start, unter GNOME
gnome-open, unter KDE
kfmclient,
Von Perl aus empfiehlt es sich vermutlich als portabelste Lösung, zu überprüfen, unter welcher Desktopumgebung man ausgeführt wird, und dann ein passendes Programm mit
system auszuführen.
When C++ is your hammer, every problem looks like your thumb.