@Cats = ("Audio","Graphics","Network","Settings","System","Utility"); $Dir = "/usr/share/applications"; opendir(DIR,"$Dir"); @Files=readdir(DIR); foreach $Cat (@Cats) { print "Submenu = \"$Cat\" { \n"; foreach $File (@Files) { open FILE, "$Dir/$File"; while () { if(/Categories=.*$Cat.*/) { @Matches = $File; foreach $Match (@Matches) { open MATCH, "$Dir/$Match"; while () { #$string = $_; @Names = $_=~ (/^Name=(.*)/o); @Execs = $_=~ (/^Exec=(.*)/o); foreach $Name (@Names) { print " Entry = \"$Name\" "; }; foreach $Exec (@Execs) { $Exec =~ s/(.*) %[uUfF]/$1/; print "{ Actions = \"Exec $Exec\" }\n"; }; }; }; }; }; }; print "}\n"; };