0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

print reverse<>;

Last updated at Posted at 2022-02-14

引数に指定したファイルの内容をすべて表示するperlスクリプトを書け、と言われたら、私なら以下のように書く。

open IN,"<".$ARGV[0];
while(){
    print;
}

そしてperlって簡単だなァ・・・とニタニタする。しかし、実は以下のように書けばいいのである。

while(<>){
    print;
}

そしてもっと恐ろしいことには、

print <>;

でよい。そして、このときの引数は複数あってもよい。指定されただけのファイルについて、内容を表示する。そして、以下のようにすると、ファイル内容を逆順に、つまり最後の行から順に先頭の行まで表示する・・・

print reverse<>;

・・・・・。これは、実は一番最後のスクリプトを見たのである。そして、これでこうならもしかして、と、今書いたのと逆にさかのぼっていったのである。

これは、「初めてのPerl」からのネタです。「初P」では「ダイヤモンド演算子」ということでその使い方が説明してあるのでそれを読んでいればわかることですが、私はここを飛ばしていたのです。そして5章のハッシュのところを読み、最後の問題の答えを見ていたら、6章の答えである

print reverse<>;

が目に入ったわけです。今日は仕事がちょっとヒマだったので「初P」を読んでいたのですが、何度か吹き出しました。こういう冗談って、なかなか書けないですよね。絵文字も、(笑)ともかかずに、マジメな顔してあきらかに冗談であることがわかる文章を書くのって、難しいものです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?