問題タブ [perl-module]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
1223 参照

perl - Perlで参照渡しするより良い方法はありますか?

私は次のように参照渡しを行っています:

それを行うよりクリーンな方法はありますか?

関数参照を使用しているため、プロトタイプは機能しません (関数参照を使用するのには十分な理由があると信じてください)。

また、醜いので、$_[0]どこでも使用したくありません。repl

0 投票する
3 に答える
488 参照

perl - ベータ版Perlスクリプトからベータ版Perlモジュールを使用するにはどうすればよいですか?

私のPerlコードに本番コードの場所と「ベータ」コードの場所がある場合(たとえば、本番Perlコードは/usr/code/scripts、ベータPerlコードはあり/usr/code/beta/scripts、本番Perlライブラリはあり/usr/code/lib/perl、それらのライブラリのベータ版/usr/code/beta/lib/perlはあります)、簡単な方法はありますか?そのような設定を達成するには?

正確な要件は次のとおりです。

  • コードは、本番環境とベータ版の場所で同じである必要があります。

    明確にするために、コード(ライブラリまたはスクリプト)をベータ版から本番環境に昇格させるために必要なのは、文字通りcpベータ版から製品の場所にコマンドを発行することだけです。ファイル名とファイルの内容の両方が同一である必要があります

  • スクリプトのベータ版は、他のベータスクリプトとベータライブラリ(存在する場合)または本番ライブラリ(ベータライブラリが存在しない場合)を呼び出す必要があります

  • /usr/code/コードパスは、ベースディレクトリ( vs /usr/code/beta/)を除いて、ベータ版と本番環境で同じである必要があります。

  • スクリプトはすべて同じベースディレクトリの下にある必要がありますが、任意の深さレベルのサブディレクトリにある可能性があります(これにより、セクション31.13use lib "$FindBin::Bin/../lib"の従来のソリューションが除外されます。 「ProgrammingPerl」のlibを使用してください)

この質問への回答として、どのように問題を解決したかを紹介しますが、もっと良い方法があるかどうか知りたいです。

0 投票する
1 に答える
199 参照

perl - 実稼働 Web サーバーの Apache/mod_perl で Web Perl モジュールのベータ テストを行うにはどうすればよいですか?

完全な本番環境に昇格する前に、ほとんどのコードがベータ モードで展開されるセットアップがあります。つまり、完全な本番環境で実行されます (本番データベース - 通常は本番データと本番 Web サーバーを使用)。その段階をベータテストと呼んでいます。

主な要件の 1 つは、BETA コードの製品版への昇格は、ベータ版から製品版のディレクトリへの単純な「cp」コマンドである必要があることです。コードやファイル名は変更されません。

Web 以外の Perl コードの場合、シームレスなベータ テストを達成することはかなり可能です (詳細はこちらを参照してください)。

  • Perl プログラムは本番ルート ( /usr/code/scripts) の下の標準的な場所にあり、本番 Perl モジュールは同じルート ( /usr/code/lib/perl)の下にあります。
  • ベータ コードには、ベータ ルートの下を除いて 100% 同じコード パスがあります ( /usr/code/beta/)
  • 特別なモジュールは、スクリプトがまたは@INCから呼び出されたかどうかに基づいてスクリプトを操作し、ベータ スクリプト用のベータ ライブラリを含めます。/usr/code/scripts/usr/code/test/scripts

このセットアップは、Web Perl コードのベータ テストが必要になるまで問題なく機能します (セットアップは EmbPerl と Apache/mod_perl です)。

ハングアップは次のとおりです:実稼働 Perl モジュールと BETA Perl モジュールの両方が同じ名前 (たとえば/usr/code/lib/perl/MyLib1.pm/usr/code/beta/lib/perl/MyLib1.pm) を持っている場合、mod_perl はこれらのモジュールの 1 つしかメモリにロードできません。同時実行の問題により、特定の Web ページが現在ロードされているモジュールのバージョンに影響を与える。

政治的/組織的な理由で実行できない明らかな非プログラミングの解決策 (血まみれの BETA Web サーバーを取得する) は別として、Perl または mod_perl でこの問題を回避する方法はありますか?

リストされているPerl モジュールをアンロードするためのさまざまな方法を試してみまし%INCたが、別のユーザーがちょうどいいタイミングで (またはむしろ間違った) ベータ ページをロードし、本番ページに使用されるベータ モジュールがロードされる可能性があるという問題が残っています。 .

0 投票する
3 に答える
16012 参照

perl - Perl プログラムは、使用する Perl モジュールを含むファイルの場所をどのようにして知ることができますか?

私の Perl プログラムが Perl モジュールを使用している場合、モジュール コードを含むファイルの場所をどのように判断しますか?

たとえば、プログラムに次のものが含まれているとします。

どこに見えますか?

0 投票する
3 に答える
152759 参照

perl - Perlの@INCはどのように構築されますか?(別名、Perlモジュールが検索される場所に影響を与えるすべての方法は何ですか?)

Perlモジュールが検索される場所に影響を与えるすべての方法は何ですか?または、Perlの@INCはどのように構築されますか?

ご存知のように、Perlは@INCディレクトリ名を含む配列を使用してPerlモジュールファイルを検索する場所を決定します

StackOverflowには包括的な「@INC」FAQタイプの投稿がないようですので、この質問は1つとして意図されています。

0 投票する
4 に答える
203 参照

perl - Perl Web開発用のASPスタイルのタグ?

これを聞いて10年前に旅行しているような気がしますが...

ASPスタイルのタグを使用してWeb指向のPerlスクリプトを記述できるようにするためのモジュール、パッチ、またはPerlの「新しい」バージョン(過去10年間にリリースされたもの)はありますか?

例:ASP/JSPから

例:PHPから

私がこれを尋ねている「理由」について心配しないでください...それはプログラミング言語の研究に関連しています。

0 投票する
5 に答える
14778 参照

perl - ユーザーとのSMTP接続およびSSL認証にperlを使用し、添付ファイル付きの電子メールを送信する方法

接続にユーザー+SSL認証を必要とするSMTPメールサーバーを使用しています。メールサーバーに接続してメールを送信するためのperlモジュールを探していますが、何も役に立ちません。

perlモジュールまたはperlコードに関する提案をいただければ幸いです。

編集

Mail::SendmailとNet::SMTP :: SSLを使用してsendmailサーバーに接続し、メールを送信しようとしました。以下はサンプルコードですが、エラーユーザーが不明になっています。

エラー:

コード:

0 投票する
3 に答える
3259 参照

bash - Perl の可用性、そのバージョン、および必要なモジュールの存在を確認する方法は?

私は Perl スクリプトを作成しました。すべての人に配布したいので、ユーザーの環境をテストし、その環境が Perl スクリプトを実行できるかどうかを調べるために使用される bash スクリプトを作成する予定でした。

次のようなことをテストしたい:

  1. Perl がそのシステムにインストールされているかどうか
  2. Perl にはバージョン 5 以上が必要です
  3. モジュール JSON::Any が利用可能かどうか

どんな提案でも大歓迎です:-)

0 投票する
1 に答える
1175 参照

perl - CPAN がバンドル内のモジュールの依存関係をインストールしないのはなぜですか?

アプリを簡単にインストールできるようにバンドルを作成しています。私はここから始めました: http://search.cpan.org/dist/CPAN/lib/CPAN.pm#Bundles

次のようなパッケージ Bundle::MyApp があります。

ローカル マシンでテストしているので、パッケージを cpan フォルダーに入れます。例: ~/.cpan/Bundle/MyApp.pm

cpan install Bundle::MyAppリストしたモジュールに必要な依存関係をインストールしないことを除いて、これを使用して実行できます。したがって、この例では、cpan は最初に DateTime をインストールしようとしますが、DateTime::Locale が最初に必要なためインストールが失敗し、次に Image::Size をインストールしようとしますが、dep が必要なために失敗します。

cpan を使用して DateTime モジュールを直接インストールすると、正常にcpan install DateTime動作し、依存関係がインストールされます。

そのため、バンドルからインストールするときに依存関係に従うように CPAN に指示する方法を探しています。パッケージに入れる必要があるものはありますか? それとも、私のユーザー アカウントの CPAN 構成の問題でしょうか?

0 投票する
4 に答える
875 参照

perl - 多くのPerlモジュールをどのように編成する必要がありますか?

12個のディレクトリに100個のPerlモジュールがあると考えてください。しかし、メインのPerlスクリプトを見ると、100use p1 ; use p2 ;などのように見えます。この問題を解決するための最良の方法は何ですか?