2

わかりました、これはメインファイルがそれらのインクルードpmファイルをどのように使用するかです

use Dancer;
use Net::OAuth2::Client;
use HTTP::Request::Common;

sub client {
   Net::OAuth2::Client->new(
     '0', # OAuth 2.0 client_id
     '1234567890abcdef', # OAuth 2.0 client_secret
     site => 'http://www.deviantart.com',
     authorize_path => 'https://www.deviantart.com/oauth2/draft15/authorize?response_type=code',
     access_token_path => 'https://www.deviantart.com/oauth2/draft15/token?grant_type=authorization_code',
     access_token_method => 'GET',
   )->web_server(
     redirect_uri => uri_for('/auth/deviantart/callback')
   );
}

これらのPMファイルをこれと同じディレクトリに配置しましたが、見つからないため失敗します

ここに画像の説明を入力してください

それらのファイルはこのように始まります

package Net::OAuth2::Client;
package HTTP::Request::Common;
package Dancer;
4

3 に答える 3

9

Perlはで見つけることを期待していFoo::Bar::Bazます$PERL5LIB/Foo/Bar/Baz.pm

また、モジュールに依存関係が付属していることも期待しています。.pm特定のファイルをコピーするだけではいけません。cpanmcpanまたは別のCPANインストーラー)を使用してモジュールを正しくインストールします。

Windowsを使用しているようです…</p>

ActiveState Perlを使用している場合は、おそらくそのPPMインストーラーを調べる必要があります。

Strawberry Perlを使用している場合は、cpanインストーラーがあり、次のコマンドを実行できます。

cpan Net::OAuth2::Client

コマンドラインで。

于 2013-02-14T17:12:43.727 に答える
5

@INCこれらのPerlモジュールを検索するためのディレクトリをリストするというPerl変数があります。このワンライナーを実行します。

$ perl -e 'print join ("\n", @INC) . "\n";'

出力は、これらのPerlモジュールを配置できるすべてのディレクトリのリストになります。

ここで、これらのモジュールの構造を理解する必要があります。モジュールが言うとき:

use Foo::Bar:Barfu;

Foo/Bar/Barfu.pmこれは、これらのディレクトリの1つにというファイルがあることを意味します。これが、Perlがこれらのモジュールを見つける方法を知っている方法です。もちろん、これらのモジュールにコンパイルしてモジュールにリンクする必要のあるバイナリコードが含まれている場合は、すべての賭けが無効になります。

これらはすべてCPANモジュールのようです。Strawberry Perlを使用している場合はcpan、コンソールウィンドウからコマンドを使用して、これらのモジュールをインストールできます。cpanコマンドラインで入力し、指示に従うだけです。これを最初に行う必要があるので、cpanそれ自体を構成できます。

それが完了すると、次回は次のようなことができます。

$ cpan install Dancer

そして、それは(運が良ければ)あなたのためにDancerモジュールをインストールします。これにより、すべてのテストも実行され、必要に応じてあらゆる種類のCコンパイルが実行されます。

ActiveState Perlを使用している場合は、ActiveStateの下のスタートメニューにあるPerl Module Manager(PMM)を使用してみてください。を介してActiveStateを使用することもできますが、それを機能させるには少し構成cpanを行う必要があります。

于 2013-02-14T17:45:36.177 に答える
0

cpanからインストールする必要がない場合は、次の手順を実行する必要があります。

  1. ファイルに依存関係がないかどうかを確認します:Client.pm、Dancer.pm、common.pm。usesome_moduleで始まるファイルの文字列からそれを知ることができます。しかし、他のモジュールが使用されている場合は、最も簡単な方法はcpanを使用する必要があります。
  2. ファイルに依存関係がないと仮定します。その場合、「。pmファイルの名前はパッケージ名と同じである必要があります。そのファイルに名前を変更します。2つの方法があります。メインファイルの最初のファイルは次のように記述します。

    ダンサーを使用します。#モジュールの名前はファイル名と同じである必要があります

    クライアントを使用します。#..。

    共通を使用します。#一般的ではない一般的ではない

2番目の方法は、.pmファイルごとにいくつかのディレクトリを作成することです。たとえば、モジュールに名前package Net::OAuth2::Client;がある場合、いくつかのdirを。として作成する必要があります./Net/OAuth2/Client.pm。符号は、モジュールが見つかるディレクトリパス::の場合と同じです。/

psディレクトリ内の.pmモジュールファイルは、makerightname./を使用すればもちろん見つかります。

于 2013-02-14T19:54:55.130 に答える