Egyszerű szkriptekhez általában nincs szükség modulokra, de a Getopt::Long szinte mindig jól jöhet. Íme egy parancssori opciókat használó szkript váza:
#!/usr/bin/env perl
use v5.018;
use utf8;
use strict;
use warnings;
use feature qw(unicode_strings);
use Getopt::Long qw(HelpMessage VersionMessage);
our $VERSION = '0.01';
# el akarjuk kerülni az azonos kezdőbetűkből fakadó ütközéseket
Getopt::Long::Configure('no_auto_abbrev');
{
# kötelezővé tesszük az opciók használatát
HelpMessage(1) unless @ARGV;
# definiáljuk az opcióinkat
GetOptions(
'holder=s' => \ my $holder,
'year=i' => \(my $year = year()),
'type=s' => \(my $type = 'artistic 2.0'),
'fulltext|f' => \ my $fulltext, # 1 vagy undef
'version|v' => sub { VersionMessage(0) },
'help|h' => sub { HelpMessage(0) },
) or HelpMessage(1);
# kötelezővé tesszük a holder opciót
HelpMessage(1) unless $holder;
# jöhet a program lényegi része...
print_license($holder, $year, $type, $fulltext);
}
sub year { return 2022 }
sub print_license { ... }
=head1 NAME
license - get license texts at the command line
=head1 SYNOPSIS
--holder Holder name (required)
--year License year (defaults to current year)
--type License type (defaults to Artistic 2.0)
--fulltext,-f Print the full license text
--version,-v Print script version
--help,-h Print this help
=head1 VERSION
$VERSION
=cut