Perl5.10.1を局所的なところを局所的に使ってみた
今までPerl5.8.6とか8とかの機能しか使ったことなかったので、5.10.1のインストールを機会に覚えてみる。
一番気になったというか、面白そうだったのが「$_のレキシカル化」と「プロトタイプ文字に_追加」だったので使ってみた。
#!/usr/local/bin/perl # 5010test1.pl use strict; use warnings; use 5.010; # 5.10の機能を有効に sub p(_) { # 引数が省略されたら$_を使う my $_ = $_; # p()内レキシカルな$_に入れる $_ .= 'day'; # これはレキシカルの方 say; # ここもレキシカルの方 our $_; # レキシカルをキャンセル say; # 渡ってきた$_ } my @week = qw/Sun Mon Tue Wed Thu Fri Sat/; p for @week; __END__
$ ./5010test1.pl "our" variable $_ masks earlier declaration in same scope at ./5010test1.pl line 12. Sunday Sun Monday Mon Tueday Tue Wedday Wed Thuday Thu Friday Fri Satday Sat
おお。できたけど、ここだけ見たら記号が氾濫していて逆に分かりにくいかな。
とにかく、forとかwhile(<>)とか、$_をループで出してる中で関数呼ぶのには便利そう。