Perlの関数への引数の受け取り方
Perlでは、関数の値の受け渡しに @_ という名前の配列が使われます。
関数内では、この @_ から、値を取得して、使っていく訳ですが、
その取得の方法が、本当に色々あります。ここでは、僕自身が、個人的に好きな取得方法を記載します。
引数が複数の場合は、 左辺の ( )が、リストをあらわすため、引数が複数であることを暗に示しているため。このやりかたが好きである。タイプ数も少なくてよい。
引数がひとつの場合は、 shift; がすごく潔いため!
というよりも、複数の場合には shift を使わない(上記のリストを示す方法)をとっているため、shift; と見た瞬間、引数が一つであると認識しやすくなるため。
ほかにも、 shift; は、 shift @_; の略だとかの説明や、
名前付き引数のやりかただとか書き出すと、きりがないほどです。
関数内では、この @_ から、値を取得して、使っていく訳ですが、
その取得の方法が、本当に色々あります。ここでは、僕自身が、個人的に好きな取得方法を記載します。
########## 引数が複数 ############ # 好き sub f{ my ($c, $d, $e) = @_; } # 好きくない sub f{ my $c = shift; my $d = shift; my $e = shift; } # 好きくない sub f{ my $c = $_[0]; my $d = $_[1]; my $e = $_[2]; } ########## 引数が一つ ############# # 好き sub f{ my $c = shift; } # 好きくない sub f{ my $c = $_[0]; }
引数が複数の場合は、 左辺の ( )が、リストをあらわすため、引数が複数であることを暗に示しているため。このやりかたが好きである。タイプ数も少なくてよい。
引数がひとつの場合は、 shift; がすごく潔いため!
というよりも、複数の場合には shift を使わない(上記のリストを示す方法)をとっているため、shift; と見た瞬間、引数が一つであると認識しやすくなるため。
ほかにも、 shift; は、 shift @_; の略だとかの説明や、
名前付き引数のやりかただとか書き出すと、きりがないほどです。
スポンサーサイト
≪楽しいお仕事
|
ホーム|
クロージャの使いどころ≫
ブログ検索
プロフィール
ビンゴ中西
Perlが好きである。
プログラミング言語のほとんどは独学。独学の過程で多くのプログラム仲間にも色々教わりました。
プログラミング言語のほとんどは独学。独学の過程で多くのプログラム仲間にも色々教わりました。
最近の記事
- Rubyについて (03/23)
- 公開鍵暗号方式 (02/24)
- JavaScriptのすごくつまづきやすいところ (02/22)
- こういうのって邪道かなぁ (02/21)
- じゃんけんの問題がやっとわかった (02/20)
FC2カウンター
最近のコメント
- ビンゴ中西:Rubyについて (03/24)
- ujihisa:Rubyについて (03/23)
- koduki:JavaScriptのすごくつまづきやすいところ (02/27)
- ビンゴ中西:apache2 (02/21)
- のざわ:apache2 (02/20)
- ビンゴ中西:Kansai.pm第10回で発表させていただきました (01/26)
- のざわ:Kansai.pm第10回で発表させていただきました (01/26)
最近のトラックバック
- もぼなもな書房:入門Perl DBI (05/26)
- ???:Υ??? if else if ä? JavaScript (10/10)
- AzureStone Memo:[kansai.pm]Kansai.pm 第10回ミーティング レポート (08/19)
- 404 Blog Not Found:perl - Inside-out Object (03/11)
- deq blog:[プログラミング] 関数と演算子 (12/13)
カテゴリー
- 未分類 (688)
- 説明 (3)
- Linux (17)
- LAN (4)
- MFC VC6.0 (8)
- データベース (29)
- 古の道具 Emacs (14)
- bash (11)
- CGI (7)
- 正規表現 (4)
- レイアウト (4)
- ビンゴ中西のエッセイ (6)
- Apache (5)
- CSS (1)
- FC2 BLOG解析 (13)
- メンズカジュアル (12)
- JavaScript (36)
- ネットワーク (4)
- それ仕様書でできるよ (7)
- 料理 (6)
- 超高速vi (17)
- Java (38)
カレンダー
日 | 月 | 火 | 水 | 木 | 金 | 土 |
---|---|---|---|---|---|---|
- | - | - | - | - | 1 | 2 |
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | - | - |
月別アーカイブ
- 2009年03月 (1)
- 2009年02月 (12)
- 2009年01月 (9)
- 2008年12月 (4)
- 2008年11月 (14)
- 2008年10月 (38)
- 2008年09月 (12)
- 2008年08月 (4)
- 2008年07月 (26)
- 2008年06月 (16)
- 2008年05月 (5)
- 2008年03月 (1)
- 2008年02月 (2)
- 2008年01月 (2)
- 2007年12月 (5)
- 2007年11月 (18)
- 2007年10月 (22)
- 2007年09月 (39)
- 2007年08月 (20)
- 2007年07月 (98)
- 2007年06月 (64)
- 2007年05月 (68)
- 2007年04月 (11)
- 2007年03月 (72)
- 2007年02月 (51)
- 2007年01月 (59)
- 2006年12月 (58)
- 2006年11月 (29)
- 2006年10月 (26)
- 2006年09月 (16)
- 2006年08月 (14)
- 2006年07月 (17)
- 2006年06月 (13)
- 2006年05月 (21)
- 2006年04月 (16)
- 2006年03月 (22)
- 2006年02月 (29)
| ホーム |
[,]