デフォルト値
back
Perl には $_, @_, @ARGV などのデフォルト値があり、
組み込み関数の引数を省略した場合などに、自動で引数として
使われる値がある。
逆に言うと、組み込み関数の引数を省略した場合、そのいくつかは、
デフォルトの引数として、$_, @_, @ARGV を引数とする。
スカラーを引数とするものの中には、$_ をデフォルトの引数とする。
print;
split(/PATTERN/);
if (/^foo/)
s/PATTERN/replace/
配列を引数とするもの中には、main パッケージ内では @ARGV を、
サブルーチンでは @_ をデフォルトの引数とする。
$val = shift;
デフォルト値に値がセットされる状況は、配列は主に
@ARGV: コマンドライン引数
@_: サブルーチン呼び出し時引数
がよく使われる。
スカラーについては、主にループブロックのデフォルト値としてセットされる。
foreach (@array) {
}
は
foreach $_ (@array) {
}
と同じ
while (<FH>) {
}
は
while ($_ = <FH>) {
}
と同じ
一般にデフォルト値の使用は、見にくくなりがちといわれるが、状況次第(だと思う)
open(F, "/etc/apache/httpd.conf");
while(<F>){
print if (!/\s*\#/);
}
close(F);
open(F, "/etc/apache/httpd.conf");
while($line = <F>){
if ($line !~ /\s*\#/) {
print $line;
}
}
close(F);
back