質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

Q&A

3回答

3348閲覧

perlファイル修正対応方法

spring

総合スコア48

Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

0グッド

1クリップ

投稿2015/11/12 06:49

linuxのapache環境にあるperlで書かれたツール(1ファイル)を修正する事になりました。
上記言語は触れた事が無く、とりあえずeclipseでperlを使えるようインストール。
ローカルで貼り付けて確認しましたがuse Parallel::ForkManager;という部分がエラーになります。
現在コードの解読にも時間が掛かっておりデータの流れも分かっていない状況。
if文の中に&とシングルクォート1つでくくっている箇所等あり混乱してきました。
出来ればローカルで環境構築し対応しようとしたいのですが、
本番環境 コマンドラインから「perl -d」でデバックできるのを知りました。こちらどんな動きをするのでしょうか?

また、他に検証方法等ありましたらご教示頂きたいです。
宜しくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

Perl から出力されるエラーではなく、Eclipse から出力されるエラーのように見受けられます。
こちらのスレッドですと、Java | Eclipse | IDE で調査されれば、なにか手がかりがつかめそうな気がします。
わたしは Perl は使いますが、Eclipse を使ったことがありません。
申し訳ありませんが、わたしでは原因の切り分けができません。

投稿2015/11/15 02:03

yoichiro_ito

総合スコア103

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

spring

2015/11/17 02:58

ご回答ありがとうございます。 ryochinさんからのご回答を受け取り急ぎlinux環境でデバックするようやってみます!
guest

0

まずは cpan から Parallel::ForkManager を落としてきて入れましょう。
http://search.cpan.org/~yanick/Parallel-ForkManager/

おそらく、ほかにも標準では入っていないモジュールをひととおりインストールする必要があるでしょう。

とりあえずデバッガを使う必要はありません、すでに回答にあるように perl -cw を実行した結果がわかればさらにアドバイス可能です。

投稿2015/11/12 11:31

ryochin

総合スコア280

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

spring

2015/11/13 05:16

ご回答ありがとうございます。 C:\>perl -cw eclipseのパス\問題のperlファイル.pl Can't locate Parallel/ForkManager.pm in @INC (@INC contains: C:/Perl64/site/lib C:/Perl64/lib .) at eclipseのパス\問題のperlファイル.pl line 20. BEGIN failed--compilation aborted at eclipseのパス\問題のperlファイル.pl line 20. 上記が出力されました。20行目は「use Parallel::ForkManager;」の箇所です。 「Parallel-ForkManager-1.16」をダウンロードしました。 上記の「Makefile.PL」を実行したり、C:\Perl64\site\libにディレクトリごと入れたりしましたが同じエラーが出ます。 Webでも良く解説が見当たらずすみません、お助け下さい。。。
ryochin

2015/11/13 05:30

Windows 環境なのですね。 ActivePerl をお使いなら、コマンドラインから次のようにしてみてください。 (ちなみに ppm だけ叩くと GUI 画面が立ち上がると思います) ppm install Parallel::ForkManager Strawberry Perl をお使いなら、おそらくふつうに cpan コマンドを使えます。 cpan Parallel::ForkManager
spring

2015/11/13 06:03

すみません、ご回答いただく前に下記を、がしがしやったらエラーが解消されました。。。これでも大丈夫でしょうか? 「Parallel-ForkManager-1.16\lib\parallel」をそれぞれ先ほどの「Perl64」のディレクトリ「lib」に入れた。 >ActivePerl をお使いなら、コマンドラインから次のようにしてみてください。 >(ちなみに ppm だけ叩くと GUI 画面が立ち上がると思います) >ppm install Parallel::ForkManager >Strawberry Perl をお使いなら、おそらくふつうに cpan コマンドを使えます。 >cpan Parallel::ForkManager 非常に勉強になります!ありがとうございます! はい!ローカル環境はwindowsになります。 まだエラーが出る箇所ありますが、引き続き作業を進めてみます。。。 @変数名1 = &変数名2'~~~($~~~,$~~~); 作業するファイルに関して、上記のように「&」と「'」で囲っている箇所があるのですがこれは文法上問題ないものなのでしょうか? 少々長文になりすみません。。。
ryochin

2015/11/13 06:18

コードを見てみないとわかりませんが、Perl4 時代の(超)古いサブルーチン呼び出しかと思われます。最新の Perl5 でも実行は可能だとは思います、たぶん。 文法が正しいかどうかは、perl -cw で Syntax OK が出るかどうかでわかります。
spring

2015/11/13 06:47

おかげさまでperl -cwで「syntax OK」が出ました! しかし、eclipseで実行するとSubroutine exec_sqlc redefined atが出ます。 もう少し確認してみます。。。
spring

2015/11/13 10:15 編集

こちらは解決しました! eclipseにてperl EPICをインストールし、 コマンドでPadWalkerをインストール(ppm install PadWalker) eclipseから「ウィンドウ→設定→Perl EPIC」にてPerl 実行可能ファイルをperl.exeがあるファイルへ。 上記でeclipseからperlのデバックが出来るみたいなのですが、動作はするものの変数ウィンドウにエラーが出ており全くなにが起きておるか確認が出来ません。 下記エラー文言 「An error occourred while dumping local variables; contents of the Variables view may become invalid」 お助けを~((+_+))
ryochin

2015/11/13 11:53

申し訳ありません、私は Windows ユーザでも Eclipse ユーザでもありませんので、それらに関わる事項には残念ながらお助けできません。見た限りは Perl 本体のエラーではないようですので、Eclipse あたりのマニュアルをお調べください。 個人的な意見ですが、Linux で動いているスクリプトを修正するのに、Windows や Eclipse など本来不要なものを使うと問題を増やすばかりだと思います。素直に Linux 環境でデバッグするのを強くおすすめします。
spring

2015/11/17 02:50

ご回答いただきありがとうございます。 確かに非効率である事僕も今更気づきました。 すみません、一般的にperlをデバックする場合はどのようにすれば良いでしょうか? やはり「perl -d」でしょうか?
spring

2015/11/17 02:56

本ツールですが構成として、html→cgi→plという感じでキックしているようです。 html部分に関しては日付を入力するフォームがありボタンを押すと処理結果が画面に出てくる感じです。
ryochin

2015/11/17 03:13

元のご質問に対しては(ひとまず)回答を提示できたと思います。 実際のプログラムに関する問題に関しては、本質問の主旨から外れますので、おそらく新しいトピックを立て、もっと具体的に質問されるのが望ましいでしょう。 デバッガを使う以前に、use strict や -w スイッチ、print での変数表示、ログを見るなど、もっと基本的なところから作業されることをおすすめしますが、個人的には、まわりの詳しいひとに頼んだほうがよろしいかとおもいます。
spring

2015/11/17 03:16

了解しました! ご回答ありがとうございました。
guest

0

どのようなエラーメッセージが出力されますでしょうか?
対象のプログラムに対して、下記のコマンドを実行すると、どのような出力がありますでしょうか?

perl -cw < 該当のプログラムファイル >

投稿2015/11/12 11:25

yoichiro_ito

総合スコア103

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

spring

2015/11/13 05:17

ご回答ありがとうございます。 C:\>perl -cw eclipseのパス\問題のperlファイル.pl Can't locate Parallel/ForkManager.pm in @INC (@INC contains: C:/Perl64/site/lib C:/Perl64/lib .) at eclipseのパス\問題のperlファイル.pl line 20. BEGIN failed--compilation aborted at eclipseのパス\問題のperlファイル.pl line 20. 上記が出力されました。20行目は「use Parallel::ForkManager;」の箇所です。 「Parallel-ForkManager-1.16」をダウンロードしました。 上記の「Makefile.PL」を実行したり、C:\Perl64\site\libにディレクトリごと入れたりしましたが同じエラーが出ます。 Webでも良く解説が見当たらずすみません、お助け下さい。。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問