#cpan モジュールを書いてみた話(主にGetopt::Longについて)

Acme::EvaTitlenizeを書いた。
id:papixが送ってくれたプルリクによって僕のコードはほぼ無くなったけどね♡

今回はMinilla使ったりコードレフ使ったり新しいことだらけだった。
id:kazuph1986先輩がその点をブログに書いていて分かりやすかった。

EvaTitlenizeでは同じコマンドライン引数を複数回使うことを最初に考えていた。

$ evatitlenize -j 家畜の -l 安寧 -j 虚偽の -l 繁栄

家
畜
の安寧
  虚
  偽
  の繁栄

みたいに。
そのためにGetopt::Longでコードレフを使うという方法があって少し感動した。
「これ(コードレフ)続パでやったところだ!」

package Acme::EvaTitlenize;
use 5.008005;
use strict;
use warnings;
use utf8;
use Encode qw/decode_utf8 encode_utf8/;

use Getopt::Long qw(:config posix_default no_ignore_case gnu_compat);

our $VERSION = "0.01";

sub print_l{
    print $_[1];
};

sub print_j{
    foreach (split //, decode_utf8 $_[1]){
      print encode_utf8 $_."\n";
    }   
};


GetOptions(
  'j=s' => \&print_j,
  'l=s' => \&print_l,
);
    
1;

続パちゃんと読まなきゃなって思った。
あとProject EulerPerl書いたりとか。

======書く時に見つけた記事======