- 544 名前:デフォルトの名無しさん mailto:sage [2008/02/26(火) 18:01:02 ]
- 重複して困るのはサブルーチン名でなくラベルやファイルハンドル。
#!/usr/bin/perl -w use strict; package Foo; sub Foo { join '', @_ } package Bar; sub Bar { print 'Bar!' } package main; # これはOK # print Foo Foo Foo => "\n", Foo->Foo("Foo!\n"); # FooFoo\nFooFoo!\n # Bar Bar; __END__ Bar! # パッケージ名と同名のファイルハンドル # open Foo, '>./Foo.txt' or die $!; # Foo->Foo('Foo!'); # ここで混乱して実行時エラー # close Foo; __END__ # goto EXPR を goto LABEL で解釈してコンパイルエラー # for (1..5) { $_ > 2 ? goto Foo Foo 'Foo' : print "$_, " } # FooFoo: print 'foo!'; __END__ # 優先順位の明確化で解決 # for (1..5) { $_ > 3 ? goto(Foo Foo 'Foo') : print "$_, " } # FooFoo: print 'foo!'; __END__ 1, 2, 3, foo!
|

|