From ed@membled.com Fri Jan 31 22:39:56 2003 Date: Fri, 31 Jan 2003 22:39:56 +0000 (GMT) From: Ed Avis To: Dan Harasty cc: Ed Avis Subject: Re: pmq: thanks! >Thanks to your contribution to the perl world: I've recently >downloaded "pmq" and find is useful. Cool. Please do publicize it if you can. I tried to make an entry for pmq on freshmeat.net but they rejected it, saying the program was too simple :-(. >Here's a request: Some sort of globbing or regex feature so I can get >all modules in a given branch, such as: > (globbing:) > pmq Net::* > pmq *XML* >or > (regex) > pmq /HTML.*Tree/ > >(Yes, I can just pipe through grep, I guess...) That's a good point, does the feature give anything beyond piping through grep? Well maybe. 'pmq Net::*' could be a lot faster than 'pmq -a' because it could just look at the Net/ directories in the include path. Or '*XML*' could filter filenames, similarly. So it is a feature I can justify adding by spurious performance arguments :-). Regexps I don't like so much, it seems weird to use them on the command line. Shell globs should be enough. I may add this feature to pmq when I get time. FWIW version 0.1.4 is now out, fixing a warning with the -f flag. -- Ed Avis From ed@membled.com Sun Feb 02 09:25:23 2003 Date: Sun, 2 Feb 2003 09:25:22 +0000 (GMT) From: Ed Avis To: DH cc: Ed Avis Subject: Re: pmq-0.1.4 -- portability and the wheels >Are you aware of >Module::Info? No I hadn't heard of that. >ExtUtils::Installed? I looked at MakeMaker but not the other things in ExtUtils (actually I thought all the things in that namespace were MakeMaker-related). >You should check'em out. Module::Info looks neat, it is not exactly the same as pmq because it parses program text rather than eval()ing. But I could add an option to pmq to use Module::Info for finding version numbers (perhaps this should be the default). Ideally the code for searching @INC could also be shared, but that would be a bigger change. ExtUtils::Installed looks very similar to pmq, but it uses packlists rather than actually searching @INC. To my mind, packlists are evil and there is some doubt that MakeMaker actually handles them correctly. (I asked on the MakeMaker list whether anyone uses packlists for anything, and nobody seemed to know.) But again, it is something I should look at. If I had set out to write pmq from scratch I probably would have made more effort to look at CPAN. But it started off as a quick hack (a oneliner, even) and then just grew and grew. I should have paused along the way to see if some of the work had been done before. But from newsgroup postings it seemed there was currently no tool to list all installed modules. >As for portability, use ExtUtils::MM instead; > >It "is a subclass of ExtUtils::MakeMaker which automatically chooses >the appropriate OS specific subclass for you (ie. ExtUils::MM_Unix, >etc...)." The parse_version() method is specific to MM_Unix and not present in the MakeMaker package, AFAICT. -- Ed Avis