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