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

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

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

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

Q&A

1回答

1078閲覧

perl installしたmoduleが認識されません(use Win32::GUI::Loft;)

masakifukuta

総合スコア58

Perl

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

0グッド

0クリップ

投稿2022/07/22 03:51

編集2022/07/22 05:44

PerlでWindows用GUI作成出来るアプリ"Tgl.exe"を使いたいです。

Perl初心者です。環境設定やcuiのコマンドも余り理解出来ず、webで拾った情報を頼りにしている状況です。

環境
os windows10

インストール済のperl関係の物
ActiveTcl-8.6.12
Perl 5.36.0(Strawberry)
Win32-GUI-1.06
(どこかで拾ったHelloWorld.plにて動作確認済)

下記ページに従ってWindows用GUI作成を出来るアプリ"Tgl.exe"を使用できる様に、
ページの指示に従ってインストールを行いました。

【PERL】WIN32::GUI::LOFTでGUIプログラミング

アプリケーション"Tgl.exe"の実行を確認出来ました。
webページに従って、ダイヤログをデザインしました。
VisualStudioCodeにて、下記コードを入力(コピペ)保存しました。

#!/usr/bin/perl use strict; use warnings; use FindBin; use Path::Class; use Win32::GUI::Loft; my $gld = file( $FindBin::Bin, "testGUI.gld" ); my $design = Win32::GUI::Loft::Design->newScalar( scalar $gld->slurp, $gld->basename ); my $win = $design->buildWindow; $win->btnButton1->Change( -onClick => sub { -1 } ); $win->Show; Win32::GUI::Dialog;

しかし、use Win32::GUI::Loft; の行に赤下波線が表示されエラーを指摘されます。

Run Codeをすると、下記のエラーメッセージが表示されました。
Can't locate Win32/GUI/Loft.pm in @INC (you may need to install the Win32::GUI::Loft module)
(@INC contains: C:/usr/site/lib C:/usr/vendor/lib C:/usr/lib)
at c:\Users\Documents\perl\Tcl_Tk\testGUI.pl line 6.

Win32::GUI::Loft moduleが見当たらない?。との事です。

The-GUI-Loft-をインストール時、

参考にしたwebページでは、下記のコマンドを実行。

C:\> cd TheGUILoft\PPM C:\TheGUILoft\PPM> ppm install -force AdHoc\Win32-GUI-AdHoc.ppd C:\TheGUILoft\PPM> ppm install -force Loft\Win32-GUI-Loft.ppd

と指示されていますが、

Unknown option: force

の表示が出ながらもインストール成功出来ている感じでした。

念のため、force オプション無でもやってみました。

C:\TheGUILoft\PPM> ppm install AdHoc\Win32-GUI-AdHoc.ppd C:\TheGUILoft\PPM> ppm install Loft\Win32-GUI-Loft.ppd

*コマンドはPowerShellの管理者にて実行。で行いました。

各フォルダに有ったinstall.batも実行しました。

TheGUILoft\PPM\AdHoc\install.bat TheGUILoft\PPM\Loft\install.bat

ここまでで、まだエラーは解消されません。

web検索にて、Win32::GUIが既にインストールされていると、エラーになるようです。との情報があったので、
Win32::GUIをいったんアンイントール。

アンイントール手順
PowerShellにて、下記コマンドを実行。

cpan cpan [1]> install App :: pmuninstall exit >pm-uninstall Win32:GUI

pcを再起動して、VisualStudio Code にて適当な Win32:GUIを使用したファイルを開き、
use Win32::GUI
の行に赤下波線が表示されエラーを指摘される事を確認しました。

その後、再度上記の様に、Win32-GUI-Loftのinstall手順を行いましたが、
まだ解消されません。
use Win32::GUI::Loft; の行に赤下波線が表示されエラーを指摘されます。

どうしたら良いでしょうか?
他の方法や確認事項があるでしょうか?
どちら様かご教授願います。
よろしくお願い致します。

追記:コメントがあり、確認したところ
Active perl
もインストールしていました。

追記:コメントがあり,Loft.pmファイルを検索したところ、
見つかりませんでした。
上記のインストール手順でインストールされていないのでしょうか

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

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

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

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

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

guest

回答1

0

ppmはactive perl用のモジュールインストーラーです。strawberry perlでは恐らく使えません。

Strawberry Perl: can't install Tcl module - Stack Overflow
これをみると、

download the exe file from ActiveTcl website. and installed 'ActiveTcl-8.6.8.0-MSWin32-x64.exe' without any Error activestate.com/products/activetcl – andy Jan 29, 2019 at 13:30

というコメントがあります。私は使ったことがないので断言できませんが、たぶんppmを使うよりはまっとうな解決法だと思います。

なお、エラーが出る直接的な原因は、C:/usr/site/lib、 C:/usr/vendor/lib、 C:/usr/libのどのディレクトリにもWin32/GUI/Loft.pmが存在しないことにあります。
まず当該pmファイルが実際にはどこに存在するのか確認してください。そのディレクトリを環境変数PERL5LIBに追加してください。(他に問題がなければ)スクリプトは起動するでしょう。

投稿2022/07/22 05:17

KojiDoi

総合スコア13727

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

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

masakifukuta

2022/07/22 05:30

ありがとうございます。 perl関係の物は理解もせず、何か問題が有ったときにweb検索して記載のあったページの通りにしている内に、 ppm と cpan が使えるようになっていました。ご指摘の通り、ドライブを見るとactive perlもインストールされていました。 Loft.pmファイルを探してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問