#!/usr/bin/env perl package Perl::Critic::Command::RenderPolicyDocsAnnopod; use parent 'Perl::Critic::Command'; sub _render_policy_docs { my (%opts) = @_; my $pattern = delete $opts{-doc}; require Perl::Critic; $critic = Perl::Critic->new(%opts); _set_up_pager($critic->config()->pager()); require Perl::Critic::PolicyFactory; my @site_policies = Perl::Critic::PolicyFactory->site_policy_names(); my @matching_policies = grep { $_ =~ m/$pattern/ixms } @site_policies; exec 'annopod', $matching_policies[0] or die "exec annopod failed: $!\n"; } unshift @ARGV, '--doc'; Perl::Critic::Command::RenderPolicyDocsAnnopod->run(); #### > perl -d `which pcpod` CodeLayout::RequireUseUTF8 [...] DB<1> s Perl::Critic::Command::_dispatch_special_requests(.../lib/perl5/site_perl/5.10.0/Perl/Critic/Command.pm:139): 139: if ( $opts{-doc} ) { _render_policy_docs( %opts ) } #Exits DB<1> s Perl::Critic::Command::_render_policy_docs(.../lib/perl5/site_perl/5.10.0/Perl/Critic/Command.pm:588): 588: my (%opts) = @_;