1. ホーム
  2. スクリプト・コラム
  3. パール

Perl5 のコードを Perl6 に移行するためのソリューション

2022-01-08 19:40:50

Perl 5 のコードを Perl 6 に変換しているプログラマーで、何らかの問題が発生している場合、あるいは Perl 5 のプログラムを Perl 6 に移植しようとすると何が起こるかを理解したい場合、この記事はあなたの疑問に答えるはずです。

Perl 6 のドキュメントには、Perl 5 のコードを Perl 6 に移行する際に直面する問題を解決するために必要なドキュメントがすでにほとんど(すべてではないにしても)含まれていますので、次のようにしてください。ただし、ドキュメントにあるように、事実上の違いに焦点が当てられています。具体的な問題をより深く議論し、かなりの量のPerl 5のコードをPerl 6に移行した経験に基づいた、より直接的な情報を提供するように努めます。

Perl 6はどうですか?

素晴らしい!ありがとうございます。2015年12月の最初の正式リリース以来、楽土Perl 6は桁違いの改良とかなりの数のバグフィックスが行われました(合計14,000以上のコミット)。現在までに、Perl 6に関する書籍は7冊出版されています。切実に書き直しているBrian D. Foy氏のLearning Perl 6がまもなくオライリー社から出版される予定です。Learn Perl (別名 "Rama Book")は、多くの人に親しまれているものです。

楽土コンパイラ版は毎月のリリースサイクルで、通常30人以上からの寄稿があります。

オンライン版Perl 6 Introductionのドキュメントは12ヶ国語に翻訳され、30億人以上の人々に母国語でPerl 6について教えています。また、最新のPerl 6 Weeklyでは、2014年2月より毎週Perl 6に関するあらゆることをレポートしています。

Perl 6 のすべての機能を最初から最後まで使用し、HTTP1.1 持続的接続、HTTP2.0 とリクエストの多重化、HTTPS による任意の認証局の提供を行うマイクロサービス フレームワーク CRO。および Perl 6 IDE は現在(有償)ベータ版です(即時配信可能なキックスタートとお考えください)。

Perl 5の機能をPerl 6で使う

Inline::Perl5 モジュールを使って、Perl 6 プログラムが使用できる完全な CPAN を作成することが可能です。これは、perl 5 インタプリタを埋め込むので、perl(5) ランタイムに依存し続けることになり、不正行為とみなされる可能性があります。しかし、そうでしょうか? USE DBI: from<Perl 5> のように、USE 文に: from<Perl 5> を追加するだけで、(移植されていないモジュールにアクセスする必要があれば) Perl 6 のコードを簡単に実行することができます。

2018年1月、私はCPANバタフライプロジェクトでPerl 5の機能を可能ならPerl 6に変換してオリジナルのAPIにすることを提案しました。iは、Perl 5は(プログラミング言語として)単なる構文ではないので、これは目標であると述べました。Perlのユニークなセールスポイントは何かと誰かに尋ねると、おそらくCPANだと答えるでしょう。 だから、Perlの世界をこの視点で始めるべきだと思います:.

もっと現代的な見方で。

つまり、Perlの最重要要素であるCPANを真ん中に置くのです。

セマンティックの変換

Perl 5 のコードを Perl 6 でネイティブに実行するには、多くの Perl 5 のセマンティクスも必要です。Perl 6 で提供される Perl 5 のセマンティックスのサポート (オプション) は、Perl 5 プログラマが Perl 6 でプログラミングしようとするときに感じる概念の敷居を低くしてくれます。自宅でも簡単に感じられるようになりました
CPAN Butterfly Projectのリリース以来、100以上のPerl 5の組み込み関数が同じAPIでPerl 6でサポートされています。多くの関数がすでにPerl 6に存在しますが、セマンティクスが若干異なります。例えば、function shift() { [native code] } は引数がない場合、魔法のように@_ (or @ARGV) でPerl 5で開始しますが、Perl 6ではその引数は必要です。

これらには、scalar:util や list:util などのコアモジュール、text:CSV や Memoize などの非コアモジュールが含まれます。CPAN の上流にある配布物は、エコシステムに最大の影響を与えます。

概要

楽土Perl6の成熟したアプローチにより、Perl6を使用して新しいインタラクティブなプロジェクトを作成することが現実的な方法となりました。また、Perl 5とPerl 6の和は、その一部よりも大きいという事実の上に成り立っています。

まとめ

この記事の内容が、あなたの勉強や仕事の参考になれば幸いです。また、スクリプトハウスを応援していただきありがとうございます。もっと詳しく知りたい方は、以下のリンク先をご覧ください。