稲沢市よりお届けしてます。

Perlをはじめとしたプログラミング周りのあれこれについて。Perl、最近書いてないなぁ。

PerlワンライナーでSAY!!!してみる

いい加減 say 使ってもいいかも。



say関数 といえば、Perl 5.10 から導入された「改行付き print」。Ruby書いてて「puts」とか超便利じゃん!って妬ましい気持ちになったものですが、Perlでもできちゃうんですねー。


ただ、僕の主戦場の格安レンタルサーバーではPerl5.8時代が長く続いていたので、登場してからsayする機会はなかなか訪れませんでした。


・・・そして時は経ち2016年。


Perlの最新バージョンが5.24になり、さくらインターネットのスタンダードプランでもPerl5.14まで選べるようになりました。「いつsayするか?今でしょ!!」(古い)ということで、コマンドラインでsayしてみました。




ワンライナーでsayするには -Eオプション

早速sayしようと思い、コマンドラインを叩くとエラーが・・・。


f:id:perl48:20160807141335p:plain

飛鳥があんなことになってしまったから「say yes」といえないのか、そんな妄想がよぎったけどググッたら解決。コマンドラインオプションを大文字の「E」、「E-girls」の「E」にすれば動きました。




f:id:perl48:20160807141408p:plain


迷わずに、say yes。






print と say の実行結果を比較


せっかくなので、printとの出力の違いをリトグリ(Little Glee Monsters)の「SAY!!!」で比較。



print で出力


f:id:perl48:20160807141418p:plain



出力が一行に並んじゃいますねー。改行させたかったら「. \"\n\"」を追加せなかん。




f:id:perl48:20160807141426p:plain

こんな感じ。泥臭さが隠し切れないですね。


Windowsコマンドプロンプトってなんでダブルクォートでスクリプトを囲ませるんだろ。評価したい「\n」を囲むダブルクォートをエスケープしなきゃいけないってマンドクサイ。



say で出力


f:id:perl48:20160807141437p:plain


イキってsay関数を使えば「\n」無しでもスマートに改行。うん、便利だ。







これで、「."\n"」って打鍵するのダルいなぁという気分ともオサラバです:)



Let's say!!!