サブルーチンの確認

perlで自作したおひとり様ActivityPubサーバーはその後も増築改築をちまちま続けていて、例によってその場での思いつき、やっつけ仕事の現物合わせ仕様で、わけわかめ状態となっている。
Activityを約束事どおりに対応するモジュール(pmファイル)で、いったい何をしてるのか。
もうすでに忘れてる自分がいるので、サブルーチンの洗い出し用にテキトーなスクリプトをでっちあげた。という覚え書きが今回のエントリ。
#!/usr/bin/perl
use strict;
use utf8;
use Encode;
my $f = shift(@ARGV);
if(! -e $f ){
printf qq{Not Found pm %s\n}, $f;
exit;
}
open(IN, $f) || die;
my $name; my @buf=<IN>; close(IN);
foreach (@buf){
if( m!^sub (.+) *\{! ){
$name->{$1}++;
}
}
printf qq{sum : %s\n}, scalar( keys %{$name} );
foreach my $sub (sort keys %{$name}){
my $pm = join(’’, @buf);
my $cnt = $pm =~ s!$sub!!g;
printf qq{%s :\n}, $sub;
my @called; my $zzz;
if( $cnt > 1 ){
my $subname;
foreach (@buf){
if(m!^sub (.+) *\{!){
$subname = $1;
next;
}
if( m!\$self\-\>$sub! && !$zzz->{$subname}++ ){
push(@called, $subname);
}
}
}
printf qq{\t%s\n}, join("\t", sort @called);
}
・サブルーチンの総数
・サブルーチンの名前
・サブルーチンを呼び出しているサブルーチン
ぐらい見えれば、そこそこ役に立つかなあ、と。
文字列検索でひっかけてるだけで、signなんかはサブルーチン呼び出しじゃない部分にもヒットする。本当は動かしながらcaller()でチェックするのが確実…だけど、ざっくり見るだけのためにあちこちにcaller()を仕込むのはうっとーしいんで却下。
使い捨てのつもりで書いたスクリプトだけど、思ったよりちゃんと見えるようにしてくれたので自画自賛&エントリとして書き起こし
10/4、ポケモンGOの対人戦GBLでACEに到達。
初期レートが1984で、ACE到達時のレートは2007。GBLで遊んでいて、ずっと継続してACEにたどり着いてたんだけど、前期初めてACEに到達できず、今期もやべえかなあ、と思ってたので、ほっとひと息。

まる6年続いているゲームで、まだ全然飽きないのがすげーす。
GBLシーズン18でACE到達

いや。ありえないほどACE到達が難しかった。
いつものシーズンならもうとっくにACE到達だったのに、今季はヤバかった…ていうか前シーズンもヤバかったなあ。
どういうわけかわからないけど、ここんとこ周りのレベルが高すぎる。
技回数をかぞえて、交代受けを当たり前にしてくるし、当然ながらGBL用にポケモン育成してるし。
のんびりまったりやってる爺さんとしてはとてもついていけなくなってる。
まじやばいなあ。
[05/17 08:28:20]
ちなみに初期レートが出たのは3/23で1681。そこから2ヶ月近くかかってる…。モチベーションがあがらなかった、というのもあるけど、スクリプト書きや在宅仕事がらみで余裕がなかった、かな。
GBLシーズン17でACE到達

ポケモンGOの対人戦GOバトルリーグ。シーズン16「時を超えた旅」でACE到達。
あれ?シーズン通算番号がなんかズレてるけど、GOバトルリーグのシーズンとメインのシーズンだとカウントが違ってたりするのかな??
てのはともかく。
12月2日スタートしたGBL(GOバトルリーグ)で、今日レート2007となってACE到達。初期レートが出たのは12月12日で、レートは1908からのスタートだった。
前シーズンは、ランク18になった頃からポケモンGO自体ほとんどやってなくて(夏の暑さにやられた)シーズン終盤になってぼちぼち再開したら初期レートは2131と過去最高でびっくりした。
そして、今期は従来通りやってやっぱりほぼ従来通り10日ほどでレートをもらってレート戦に入ったらやっぱり前々回ぐらいの初期レート1900前後…てことは、もしかすると、早い時点でそれなりのレートをもらえるのはちゃんとやってるガチ勢、ということなんだろうか。
ボケ老人のわたしのヘボいスキルだとこのあたりでの着地が適当・妥当てことなんだろな。
涼しくなってウォーキングもはかどるし、対人戦はその時間内であれこれ考えることが多くてボケ防止にもなるし、6年も続いてる&続けてるゲームなだけはある。ほんと飽きないんだよなあ。
まずはGBLでの目標をクリアしたのでこの後はゆっくり。
称号の上を目指してのレート戦はストレスもかかるんで、ただ楽しむためのゲームとはちょっとニュアンスが違ってくる。ストレスを感じながらゲームを遊ぶのもどうかと思うので、マイペースで遊んでいこう。

GBLシーズン16でACE到達

ポケモンGOの対人戦GOバトルリーグ。シーズン16「冒険の日々」シーズンでACE到達。
今期は9月1日スタート。で、今日は11月15日、今までで一番遅い日にちでのACE達成だった。
初期レートは過去最高の2131でちょっと嬉しかった。タイミングなんだろなあ。その後1セットやってACE到達。なんせ5戦全敗してもレートは2000超が確定の初期レートなので、安心。

にしても。今期はまったくモチベーションが上がらなくて、それでも9月10日すぎぐらいまではそれなりにGBLに参戦してたんだけど、ぱったりやらなくなった。GBLではなく、そもそものポケモンGO自体、立ち上げない日々が続いていた。
最大の原因は暑さ。
わたしはがっつりメタボ、生活習慣病で毎月医者通いするポンコツ。ウォーキングを1万歩目安でやってたんだけど、この夏の暑さでは無理。そんなところにもってきてナイアンティックは何を考えてるんだか、ユーザーの作ったルートを辿るタスクなんかも導入して、うんざりしてしまった。ひらたくいうと「このくそ暑い時に、やってられっか」だった。
ということを思いかえすに。わたしにとってポケモンGOはIngressからの流れのお散歩アプリ、ゲームとしての位置が大きかったんだなあ、と。
Ingress、ポケモンGOのウォーキングのおかげで、メタボの数値が先生も感心するぐらいには好転したのも事実。
で、ポケモンGOを立ち上げないと、GBL(GOバトルリーグ)へのモチベーションもがっつりなくなった。
GBLは集中力という名の体力が必要なので、やっぱりこのくそ暑さで消耗してる時にやれるもんじゃなかった。
もちろん、それだけじゃなくて、ほかもろもろ時間を使わなきゃいけないことがあったことはあったけど、時間てのは作るものだし、時間の取り合いでポケモンGOの優先順位ががくっと下がったということ。
今期はまだ今月25日までやってる。時間が取れれば参戦するかぁ、ぐらいでやっていこう。
GBLシーズン15でACE到達

ポケモンGOの対人戦GOバトルリーグ。シーズン15「隠された宝石」シーズンでACE到達。
昨日、ランク20までの規定の勝利数を達成してもらった初期レートが1953。前シーズンの初期レートが1900ぐらいだったので、けっこうもらえた。
今シーズンのスーパーリーグというレギュレーションは、技変更などがあって前シーズンとは環境が激変。前シーズンが決まりきったテンプレパーティばかり出てきて、今イチ面白みに欠けたのことを考えると、今シーズンはパーティのバリエーションが豊富でかなり面白い。
いちいち一試合ごとに右往左往ジタバタすることになって負けが込むことも多かったんだけど「あーでもないこーでもない」が面白いんでスマホを投げるようなことにはならなかった。かな。
とりあえず。今シーズンも目標はこれで達成。まだまだシーズンは続くので、面白いゲームができればいいなあ、と。


