in reply to How to pass POD into a Subroutine

See The Dynamic Duo --or-- Holy Getopt::Long, Pod::UsageMan!, which discusses how to use Pod::Usage to output the description of Perl scripts.

Replies are listed 'Best First'.
Re^2: How to pass POD into a Subroutine
by neversaint (Deacon) on Apr 03, 2006 at 12:25 UTC
    Dear Masters,

    Thanks a lot for the useful link. Now I have this code. But as stated in my OP, I still can't make my code below return a default man/help page when no parameter is passed. Is there a way to do it with Pod.
    !/usr/bin/perl -w use strict; use Data::Dumper; use Getopt::Long; use Pod::Usage; my $some_param = 5; #Default value my $help; my $man; GetOptions( "someparam|s=s" => \$some_param, "help" => \$help, "man" => \$man, ) or pod2usage( -verbose => 1 ) && exit; pod2usage(-verbose => 2) && exit if defined $help; pod2usage(-verbose => 2) && exit if defined $man; # Do sth with param print "PARAM IS: $some_param\n"; __END__ =head1 NAME MYCODE - do something =head1 SYNOPSIS perl mycode.pl [options] [file ...] Options: -help brief help message -man full documentation =head1 OPTIONS =over 8 =item B<-help> Print a brief help message and exits. =item B<-man> Prints the manual page and exits. =back =head1 DESCRIPTION B<This program> will read the given input file(s) and do someting useful with the contents thereof. =cut


    ---
    neversaint and everlastingly indebted.......

      Try this instead:

      GetOptions( "someparam|s=s" => \$some_param, "help" => \$help, "man" => \$man, ); pod2usage( -verbose => 1 ) unless defined $some_param; pod2usage( -verbose => 2 ) if defined $help; pod2usage( -verbose => 2 ) if defined $man;

      jeffa

      L-LL-L--L-LL-L--L-LL-L--
      -R--R-RR-R--R-RR-R--R-RR
      B--B--B--B--B--B--B--B--
      H---H---H---H---H---H---
      (the triplet paradiddle with high-hat)