劇場用3Dアニメーション「ドットハック セカイの向こうに」 予告篇
3Dアニメ映画「ドットハック セカイの向こうに」 (2012)
そろそろ.hackシリーズも見ていこうと思ってます。全部見た頃に感想更新します。
ドットをつなげて、..と書くと、範囲指定子になりますね。Rubyだと(1..10)、Bashだとブレース展開で{1..10} 。
今回は、Perlで..使います。
takk@deb9:~$ perl -E 'say "a".."z"'
こうすると当然、
takk@deb9:~$ perl -E 'say "a".."z"' abcdefghijklmnopqrstuvwxyz takk@deb9:~$
アルファベットのa~zまで表示されますね。
では$_に入れてから表示するとどうなるでしょう。
takk@deb9:~$ perl -E '$_="a".."z";say' 1E0 takk@deb9:~$
あら不思議。アルファベットが表示されません。
まあPerlを知ってる人から見ると当然ですね。代入する変数が間違っています。$_ではなく、@_;
範囲演算子..は、foreachで繰り返し処理を見るとわかりますが、配列となります。
takk@deb9:~$ perl -E 'foreach("a".."c"){say}' a b c takk@deb9:~$
どうしてもスカラーとして代入したいときは、配列の添字が必要です。
takk@deb9:~$ perl -E '$_= ("a".."z")[25];say' z takk@deb9:~$
最初のコマンドに戻ります。
$_を@_に入れ替えれば、正しく表示されます。
takk@deb9:~$ perl -E '@_=("a".."z");say @_' abcdefghijklmnopqrstuvwxyz takk@deb9:~$
配列なので””で囲むと、一つずつ区切られて表示されます。
takk@deb9:~$ perl -E '@_=("a".."z");say "@_"' a b c d e f g h i j k l m n o p q r s t u v w x y z takk@deb9:~$
コメント