初投稿がホクホクのイモなわけないじゃないですか
なんてことは特になく、ふと思い立って1行でホクホクのイモを書いてみただけ
echo "ホ,ク,イ,モ"|perl -aF',' -lpe '$\_=$F[int(rand(4))].$F[int(rand(4))];$\_.=$\_."の".$F[int(rand(4))].$F[int(rand(4))];'
当然1行に圧縮した時点でドチャクソ読みづらいので何をしているのか解説するためにも改行してコメント追加
とりあえず出力要件としては”[2文字2回]の[2文字]”とする。文字被りは考慮しない。
echo "ホ,ク,イ,モ"| #何はともあれ文字設定。配列に文字入れたりとかが面倒だったのでechoしてperlのaスイッチでawkコマンド的に配列を作成
perl -aF',' -lpe ' #aスイッチと区切り文字、lで入力行末の改行chompしつつpスイッチでprintを省略
$\_=$F[int(rand(4))].$F[int(rand(4))]; #適当にランダム2文字作成
$\_.=$\_."の".$F[int(rand(4))].$F[int(rand(4))]; 直前で作った2文字を2連続しつつ出力後半の2文字を作ってそのまま$_にブチ込む。pスイッチのおかげでprintしなくても$\_が勝手に出力される。
'
改行しようとコメント付けようと読み辛いもんは読み辛かったわメンゴメンゴ
なお反省はしない模様。
多分もっとスマートな書き方とかあるけど気にしない。
2019/11/5
_をエスケープしないと表示されてなかったのでエスケープを追加