プログラマーになりたい息子が二十歳になった時、このブログをプレゼントする。これがこのブログの最終目標です。彼が飽きなく読めるように、彼の好きなアニメやドラマの感想を織り交ぜながら、試行錯誤しつつ、コマンドの入門から応用まで順序立てて学習できる指南書にしようとしています。
私も飽きっぽい性格なので、部品となる記事を毎日書くことで、少しずつ進んでる実感を得てモチベーションを維持しながら目標に向かってます。
さて、今までさんざんPerlを使ってきたわけですが、今回の記事は入門編の最初の方に位置するものと考えているので、今頃ですが「Perlを使う」というタイトルにしました。
コマンドの達人を目指すために、避けては通れないプログラミング言語はたくさんあると思いますが、私はPerlで育ったエンジニアなので、Perlの学習は外せないと考えています。
Perlは、Linuxディストリビューションには標準で入っていますので、インストール不要ですが、apt-get install perl(Debian系)や、yum install perl(Red Hat系)ですぐに利用できます。
perlコマンドでPerlスクリプトを実行できます。-eオプションはスクリプトをコマンドラインでそのまま記述することができるオプションです。
takk@deb9:~/pl$ perl -e 'print "Hello World!\n"' Hello World! takk@deb9:~/pl$
パイプでperlへ標準入力させることができます。
-nオプションを使うと、標準入力の各行をすべて繰り返し処理してくれます。
$_は、標準入力の各行の文字列です。改行を含みます。
takk@deb9:~/pl$ seq 10 | perl -ne 'print "[PERL]$_"' [PERL]1 [PERL]2 [PERL]3 [PERL]4 [PERL]5 [PERL]6 [PERL]7 [PERL]8 [PERL]9 [PERL]10 takk@deb9:~/pl$
$_に格納されているのは、標準入力の各行なので文字列なんですが、そのまま数値計算することもできます。各行の数字に10を足して表示してみます。
takk@deb9:~/pl$ seq 10 | perl -ne '$_ += 10;print "[PERL]$_"' [PERL]11[PERL]12[PERL]13[PERL]14[PERL]15[PERL]16[PERL]17[PERL]18[PERL]19[PERL]20takk@deb9:~/pl$
perlに読み込まれた直後の$_は改行を含んでいましたが、10を足した後の$_は、改行を含んでいませんので注意が必要です。
printする時に改行を含んでみましょう。
takk@deb9:~/pl$ seq 10 | perl -ne '$_ += 10;print "[PERL]$_\n"' [PERL]11 [PERL]12 [PERL]13 [PERL]14 [PERL]15 [PERL]16 [PERL]17 [PERL]18 [PERL]19 [PERL]20 takk@deb9:~/pl$
最初に改行を削除して、最後に改行をつける癖をつけても良いかもしれません。
改行を削除するにはchompを使います。chompを実行すると、$_中の最後の改行が削除されます。
takk@deb9:~/pl$ seq 10 | perl -ne 'chomp;print "[$_]\n"' [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] takk@deb9:~/pl$
コメント