関数じゃないけど、C言語みたいに、 sub funcname($val1,$val2,...,$valn){...} こういう風にサブルーティンを書けるようにしてほしい。 もちろん仮引数はローカル変数で。
63 :
>>3 Parrotの構文ツリー形式を吐くパーサを自分で書けばいいよ。 実例としてはparrot/languages/jako辺りのパーサ/コンパイラを見てくれ。 http://dev.perl.org/perl6/architecture ------ The parser will permit you to change its rules. Rule sets define major languages (Perl, C, Python, Java, etc.) and you can write new rules to define minor languages (Perl without $ @ % sigils, Python with curly braces, etc.). ------ >>6 Perl6 RFCでも、スレッドに関して幾つか提案がなされてるけど、 (1, 178, 185ほか)RFC185のような実装になるみたい。 RFC 185: Thread Programming Model http://dev.perl.org/rfc/185.html >>14 ./Configureの際に指定できるよ。 ...最近は設定プログラムにGNU Autoconfを利用した物がほとんどで、 Perlで使っているMetaconfig(by Larry Wall他)は滅多に見かけない...。 (autoconfは大抵質問してこないから楽だけど。) >>25 Perl6ではXS の代わりに Inline::* 系が標準になるので、 他言語で拡張パッケージを書くのはかなり楽になると思います。 >>41-42>>47-48 RFC5, 102で提案されているけど、Larryは http://dev.perl.org/perl6/apocalypse/2 の"Inline Comments for Perl" で述べているとおり導入に消極的。 その代わりにプラグマinline_commentとかが追加されたりして。 Perl5でcppの使える環境なら-Pオプションで、コンパイル前に Cプリプロセッサに食わせてやることで実現が可能だけど。 Perl6の"is"オペーレータで同様のことが出来るかも。 if ( test1() is "checking something" && test2() is "眠いな" ) { # hogehoge }
64 :
>>43, 50 PerlIO::TextCodecクラスみたいなのが追加されたら便利かも。 (´-`).。oO(以下↓は妄想.....) *------* #!/usr/bin/perl6 use IO; my $in = new IO::TextStream(@ARGV[0]); #Perl6の配列要素参照は@array[index] my $out = new IO::TextStream(@ARGV[1]); $in.open("r") or $out.open("w") or die "open() failed"; $*in is chomped; # 入力は自動的に改行を削除 $out.setCodec(PerlIO::TextCodec::euc_JP); # 出力はeuc-jpで、とか while (!$in.end) { my string $line = $in.readline(); # 勝手にunicode文字列に変換して$lineへ $out.writeline($line); # $outのコーデックでunicode->euc-jp自動変換 $out << codec("euc-jp") << $line << endl; # まにぴゅれーたすたいる print $out: $line.locale8bit(); #ロケールに応じたエンコーディングで出力 my $codec = new PerlIO::TextCodec("shiftjis"); print $out: $codec.fromUnicode($line); } $in.close(); $out.close(); *-----* >>49 それは無いかなぁ >>51-52 それはライブラリのお仕事かなぁ
65 :
>>60 Perl6では可能ですよ。詳しくは RFC025 http://dev.perl.org/rfc/25.html と、 Apocalypse 3<Operators> の "multiway comparisons" の項を見てね。 http://dev.perl.org/perl6/apocalypse/3 >>62 RFC26 http://dev.perl.org/rfc/26.html で提案され、Perl6で 取り入れられる予定です。Damian Conway氏のExegesis 2 "Take that! And that!" に実例が出てきます。 また、省略時パラメータは //= で行います。 ですから、例えばC++で(今書いてたコードから拝借) void QMenu::insert(const QString& text, int index = -1) { // なんやかや } をPerl6では、 sub QMenu::insert(string $name is constant, int $index //= -1) { # なんやかや } と書けます。