Windows(とか)でPerlを使えるようにする
ActivePerlをサイトから入手
コマンドプロンプトで試す
いい方法がわからんかった。
非Unixシステムで実行1とPerlデバッガー2のあたりを参考にした。
# 簡単に試したい場合はperl -e [command]で実行
perl -e "print 'Hello, world!';"
# もうちょっと色々試したい場合はPerlデバッガを起動
perl -d -e 42
バイナリをいじる
とあるファイルのバイナリを編集しようと思って、どのプログラムが簡単だろうとネットを眺めてて、決め手となったのがこのページ3。
5C がバイナリの16進表記であると仮定して、
#perl -p -i.back -e 's/\x5C\x5C/\x5C/g' FILENAME
上記のようにお手軽にバイナリいじることができるって分かってのでPerlにすることにした。
Packについては、変数使っていると意図通りに動かなかったので、そういった部分についてはこのサイト4を参考にして個別でPackした。
$suuji = 1;# 数字だよ
$packedSuuji = pack(‘H2’,’0’.$suuji);#'03'(文字型)をPackしないと想定どおり動かないぞ
$contents =~ s/00\x02/00$packedSuuji/g;#Perlでは「.」で結合するけどここではいらないよ(深く考えない)
# \x30 \x30 \x01 って扱いになる
$missPackedSuuji = pack(‘H2’,$suuji);
$missContents =~ s/00\x02/00$missPackedSuuji/g;
# \x30 \x30 \x0xxx って扱いになる
ファイル入出力
Qiitaの記事とかその他を読んでそれっぽくやった。
Optionについて
わかりやすいサイトがあったのでその記事5 6を参考に作る。
これを使うと勝手に短めのオプション指定もできるらしい(オプションの頭文字がかぶったら特定できる部分まで書けばOK)。
とくにEmptyPage.jp様の記事[^1]はとてもわかりやすく、感謝の気持ちでいっぱいになった。
test.pl -no=2 -type=others
test.pl -n=2 -t=others
test.pl -n 2 -t others
test.pl --n 2 --t others
↑どれもおなじ意味だよ
# モジュールの読み込みと関数のインポート
use Getopt::Long 'GetOptions';
# デフォルト値設定
my $no = 1;
my $type = 'default';
# オプション受け取り
GetOptions(
'no=i' => $no,
'type=s' => $type
);