perlのDumperとかjavascriptのfetchとか

ボケ防止にごそごそいじってるスクリプトの小ネタをメモ
何を今さら初心者なネタを2つ。
その1)
perlのData::Dumperで日本語が文字コード表示になってわけわからない。
日本語は日本語として表示する、というのをいつも忘れてグーグル先生に聞くハメになってるんで、ここにメモ
Data::Dumperにちゃんと指定するなら
use Data::Dumper;これで
*Data::Dumper::qquote = sub { return encode "utf8", shift ;};
$Data::Dumper::Useperl = 1;
print Dumper $refなどとやれば日本語が表示される。
ただ、わたしは影響範囲をよくわかってないんで、それっぽい文字コード表示を日本語表示に変換する方法でやることが多い。
my $dump = Dumper $ref;これでも日本語が表示される。
$dump =~ s/\\x\{(\w{4})\}/pack(’U’, hex($1))/eg;
その2)
javascriptは苦手で、知識は10年ぐらい前のjQueryで止まってるし、スキルはひどいものだ。
最近また触ってたのは、自作実装ActivityPubサーバーに非同期でイイネをつけるボタンを設置しようと思ったのが動機。
jQueryだと「$.ajax」なんだろうけど、ちょっと検索したところ、最近はjQueryも不要でjavascriptだけで実装できるんでビックリ…すげー素人丸出し。
const res = fetch(url,{
method: "POST",
body: JSON.stringify({url:url, item:id, emoji:emojicode})
})
.then(response=>response.text())
.then(response=>{alert(response);});
urlにPOSTでリクエストを投げて返事がちゃんと戻ってきたら最初の「.then」ブロック、エラーだったら次の「.then」ブロック。
「then」で繋いで処理をするというシンプルな記述でスクリプトがわかりやすい。
まだまだ知らないことがあるもんだ。自分アップデートしておかないとなあ。
[08/26 07:20:41]追記
「const res = fetch()」はfetchの戻り値「Promise」を受けてるんだけど、「.then」で繋いでそこで処理してるので「res」で受ける必要はない。「fetch()」だけでok。
Promiseに対する処理がいろいろ必要な場合に、スクリプトの見通しをよくするために、適当な変数にPromiseを入れておく、といった使い方かな。
「fetch APIとPromiseの備忘録」
https://qiita.com/be834194/items/f9c95470246126f4bf9d
↑こちらが詳しい(多謝)


