=head1 NAME X perlfunc - Perl 組み込み関数 =head1 説明 このセクションでは関数は式の中の項として提供されます. これには2つの大きな分類があります: リスト演算子と名前付 単項演算子です. これらの違いは続くコンマとの優先関係にあります. (L にある優先順位表で確認してださい.) リスト演算子は 1つ以上の引数をとり, 一方単項演算子は引数を取らないか1つの 引数を取ります. つまり, コンマは単項演算子の引数は閉じますが, リスト演算子の引数では単に引数を区切るだけです. 単項演算子は おおよそその引数にスカラコンテキストを提供し, リスト演算子は その引数にスカラーかリストコンテキストのどちらも提供します. もし両方だった場合にははじめにスカラ引数で, その後にリスト引数が 続きます. (以前にはそのようなリスト引数が1つだけありました.) 例えば, gethostbyname() は4つのスカラ引数を取るのに対して, splice() は3つのスカラー引数とそれに続くリストを取ります. 後述の構文の説明で, リストを受け取る(そしてリストの要素に リストコンテキストを提供する)リスト演算子は引数に LIST と 表記します. そのようなリストはスカラ引数やリスト値で構成される かもしれません; リスト値にはリストの中であたかも個々の要素が その時点で, 長い1次元のリスト値を形成してそこにあるかのよう にして含まれます. コンマは LIST の要素を区切ります. リストの続く関数は何であれその引数をくるむ括弧はあってもなくても 使えます. (構文の説明では括弧は省略しています.) もし括弧を使うのであれば, そのシンプルな(しかし時々びっくりする)ルールは次のようになります: それが関数のようにI<見えれば>, それは関数I<であり>, 優先順位は 関係ありません. それ以外であればリスト演算子若しくは単項演算子であり, 優先順位も意味を持ちます. そして関数と引数の間の空白からは 意味を汲みません -- これには時々注意する必要があります: print 1+2+4; # Prints 7. print(1+2) + 4; # Prints 3. print (1+2)+4; # Also prints 3! print +(1+2)+4; # Prints 7. print ((1+2)+4); # Prints 7. Perl を B<-w> スイッチを有効にして実行しているときにはこれは警告を 得ることが出来ます. 例えば今の例の3行目では次の警告が生成されます: print (...) interpreted as function at - line 1. Useless use of integer addition in void context at - line 1. 幾つかの関数は引数を全く取らず, 結果単項演算子としてもリスト演算子 としても動作します. そのような関数には C