Hm. Are you sure about \p{M}? In perldoc perluniprops this is defined as matching "Mark" (whatever it means). You need something like \p{InHiragana}. Better yet, define your own property that would match what you really need. Read "perldoc perlunicode".
Also make sure that edict is really in UTF-8. The simplest is to open it in vim editor and then check the encoding. Normally vim uses utf-8 so if japanese is displayed correctly, then it is UTF-8. If not, then it is somethings else (I know that EDICT disctributed by WWWJDIC is in EUC-JP).