IT練習ノート

IT関連で調べたこと(実際は嵌ったこと)を書いています。

範囲オペレータ

#2回ループする
$ perl -e 'for(0..1) {print $_ . "\n";};'
0
1

#ゼロからゼロまでと読んでしまうとループしないように思えてしまう。
#そうではなく、ゼロからゼロを処理した後に終了と読む。
$ perl -e 'for(0..0) {print $_ . "\n";};'
0

#このケースではドットが3つでもドット2つと同じ。
$ perl -e 'for(0...1) {print $_ . "\n";};'
0
1

#ドット4つでも動いてしまう。この挙動の理由がわからない。
$ perl -e 'for(0....1) {print $_ . "\n";};'
0

#これはエラー
$ perl -e 'for(0.....1) {print $_ . "\n";};'
syntax error at -e line 1, near "....."
Execution of -e aborted due to compilation errors.