人気ブログランキング | 話題のタグを見る
Windows10でのPerl。ActiveでもStrawberryでもなく、WSL2のUbuntuのPerlだろ?。。。
WindowsでPerlを使い始めて20年近くになる。

当時は本家のPerl自体、Cygwinなど、何らかの形でLinux疑似環境を利用しないと動作しなかったため、Active Perlは画期的な存在であった。
商用利用ではない個人レベルでのローカルでの利用だったこともあり、数年前にダウンロードしたActive Perl 5.24を使い続けていたので、様々な変化について行ってなかったのもあったが、久しぶりに新しいバージョンに切り換えようと思ったら、「@inc」の問題とか「PPM」廃止問題とかに、モロにぶつかってしまった。

Active Perlは現在、ActiveState Platformという統合的なシステムに移行したことを知った。

アカウント登録を更新し、こちらを使い続けても良かったのだが、gitHubアカウントで登録しようとすると、非公開のソースまで閲覧権限を与えてしまうということを知った(図)。
で「Windows Perl」で検索すると、Strawberry Perlが良い様で、そちらに切り換えることを考えたけれど、

「ちょっと待った! そもそもまともにLinux使えない環境だった時代の話で、WSL2で動くUbuntuのPerl使えば良いんじゃね?」

と、/mnt/[ドライブ]名以下の、Windowsシステムで作りためたPerlソースが動くかどうか確かめたら、数点の問題点をクリアすれば大丈夫なことが判明。
「そりゃそうだろうな」と妙に納得し、お得感いっぱいで幸せな気分になった。

無論、全てのケースを確かめたわけでは無いけれど、WSL2のUbuntuで動作しないなら、作り替えた方が良いに決まっているし、そもそも、個人レベルでのWindowsローカルシステムにての稼動を前提としているから簡単だったとも言える。

WSL2のUbuntu(18.04 LTS)での動作確認時に修正したポイント
1.カレントディレクトリ[@inc]の問題
サーバ等での高度なセキュリティが求められる条件ではなかったので、「use lib ".";」を追加することで対処。
===2022.08.30 01:55 追記
「use lib ".";」を追加せずに
「use FindBin;」と
「use lib $FindBin::Bin;」の2行を追加する方法でもOKだった。
FindBinモジュールでの$FindBin::Binは実行中スクリプトが存在するディレクトリへのパスを取得するとのこと。
詳しくは上記URL(Perlゼミ、「FindBin - スクリプトが存在するディレクトリのパスを取得」)を参照のこと。
2.ソースの文字コードと改行コードの問題
デフォルトでWSL2のUbuntuに入っていないnkfをインストールして下記の変換コマンドを使い、Windows内に作りためたPerlのソースを変更。
> nkf -wd --overwrite *.pl
上記コマンドで、文字コード:utf-8,改行コード:LFに変更。
3.ctrl-Z、ctrl-Dの問題
WindowsでのPerlでは、標準入力からの入力終了を「ctrl-Z」で判定しているようで、Linux標準の「ctrl-D」とは異なる問題がある。
Linuxで「ctrl-Z」すると、プロセスが停止状態になったまま、WSL2のUbuntuを終了させることができなくなるので注意が必要。
万一、プロセス停止させて閉まった場合、あわてずに、
> jobs
でジョブ一覧を表示し
> fg [ジョブ#]
にて、フォアグラウンドに引っ張り出し、本来入力するべきだった「ctrl-D」をおもむろに入力すれば良い。
https://kazmax.zpp.jp/linux_beginner/jobs_fg_bg.html
4.ファイル名の展開に注意 ===2022.08.30 02:10 追記
Windowsでのお作法にて、perlの引数に渡すパラメータにワイルドカードの入ったファイル名を使っていた場合、wsl (Linux)内では該当部分をシングルクォートで囲む必要がある。

Windows10でのPerl。ActiveでもStrawberryでもなく、WSL2のUbuntuのPerlだろ?。。。_b0032038_04463124.png
図:ActiveState Platformでのアカウント作成時にgitHubアカウントを紐付けようとするときに表示される承認画面
リポジトリのプライベートエリアへのアクセス権を与えることになるので注意!!




by kisugi_jinen | 2021-09-19 05:40 | program。。。 | Trackback | Comments(0)
<< トップダウンとボトムアップと。。。 夢。。。登り詰めた先。。。 >>



「ともし火に我もむかはず燈(ともしび)もわれにむかはず己がまにまに」(光厳院) --- 厳然とした境界を越え得ぬとき、その上でなお、越えうるものがあるとすれば、それは「情」である。

by kisugi_jinen
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
検索
カテゴリ
最新の記事
お知らせとリンク。。。
お知らせ
●コメントスパム対策のため、承認制に変更しました(2010.09.29)
●トラックバックのリンクチェック機能を追加しました。excite以外からのトラックバックをされる場合、当該記事へのリンクを埋め込んでください。
リンク
ゲストブック
---Yahooジオシティーズ終了に伴い、利用できなくなっています。
来生自然のホームページ
---Yahooジオシティーズ終了に伴い、利用できなくなっています。
鉄鼠
---「考える」ということに向き合う。。。
Genxx.blog
移転後http://blog.genxx.com/
---「情」を含めて専門的な立場から「こころ」を模索し続けるGenさんのブログ。。。
研幾堂
---山下裕嗣氏による哲学のサイト。以前、形而上学についてやりとりさせていただいた。
記事ランキング
最新のコメント
グローバル大納言さま ..
by kisugi_jinen at 00:13
最近はChatGPTや生..
by グローバル大納言 at 09:12
花の名前も、花言葉も知ら..
by kisugi_jinen at 07:26
> hatekatsu卿..
by kisugi_jinen at 10:05
ふるさととは根源的で絶大..
by hatekatsu卿 at 11:18
最新のトラックバック
以前の記事
フォロー中のブログ
外部リンク
ブログパーツ
ライフログ
ファン
ブログジャンル
画像一覧