> Due to twisted nature of Tk Module::ScanDeps has some > heuristic to deal with it, which appears to give false > positive in my case.
And twisted it is: line 626 of Module::ScanDeps return $1 if /\b(\w[\w:]*)::\w+\(/; runs afoul of lines in Tcl/Tk.pm like $bot->pack(-side => "bottom", -fill => "x", -expand => 0); -command => ['set', '::tk::Priv(button)', "$_"]); Here it matches "tk::Priv(" (albeit in a string, probably taking it for a fully qualified subroutine call) and goes on looking for a module named "tk.pm". Now, on Unix, there's no such thing, but on Windows it'll find "Tk.pm" (from the Tk module)... I see no easy way to prevent this because Module::ScanDeps must look into literal strings, otherwise it would not be able to do the right for something like require "foo.pl"; If you're just trying to pp an application that uses Tcl::Tk you can stop the inclusion of the "false" tk.pm like so (note the spelling): pp -o foo.exe -X tk.pm your_program_using_Tcl_Tk.pl Cheers, Roderich