2020年6月18日木曜日

Windows上でPerlの統合環境(Visual Studio Code + Strawberry Perl)

WEB上の情報を参考に、Windows上でPerlの統合環境を作れないか調べてみると、以下の組み合わせが便利そうだったので、構築してみました。

1.Visual Studio Code
2.Strawberry Perl
3.Perl Debugger

まずは Visual Studio Code (https://code.visualstudio.com/)のダウンロードとインストール。
使いやすいように、表記を日本語にしておきます。

次に Strawberry Perl のインストールです。
WEB上には PowerShell を使ってインストール、って紹介もあったけど、うちの環境ではうまくインストールできなかったので、公式サイト(http://strawberryperl.com/)からダウンロードしてインストールしました。
インストールだけで PATH も変更されたようです。

Perl Debugger は、VS Code を起動して、「表示」「拡張機能」で検索窓に perl って入力したら「Perl Debugger」が出てくるので、それをインストールしました。

これで準備完了。

さっそく sample.pl を作成。
#! /usr/bin/perl
use strict;

print "Hellow Perl\n";

exit;
  

print 行にブレークポイントを貼って実行すると、見事にブレークしてくれました。(^_^)v

さて、よくある問題の日本語表示を試してみましょう。
  print "Perl開発環境出来上がり\n";
に変更して実行してみます。

PS E:\TestDir\Perl\sample> cd 'E:\TestDir\Perl\sample/'; ${env:PERLDB_OPTS}='RemotePort=localhost:55237'; & 'perl' '-d' 'E:\TestDir\Perl\sample/first.pl'
Perl髢狗匱迺ー蠅・・縺ァ縺阪≠縺後j

文字化けしますね orz

use utf8;
を追加して実行してみました。

PS E:\TestDir\Perl\sample> cd 'E:\TestDir\Perl\sample/'; ${env:PERLDB_OPTS}='RemotePort=localhost:55237'; & 'perl' '-d' 'E:\TestDir\Perl\sample/first.pl'
Wide character in print at E:\TestDir\Perl\sample/first.pl line 6.
Perl髢狗匱迺ー蠅・・縺ァ縺阪≠縺後j

有名な、Wide character エラーまで出力されるようになってしまいました。

use utf8; の代わりに
use open IO => qw/:encoding(UTF-8) :std/;

を加えてみましょうか・・・
PS E:\TestDir\Perl\sample> cd 'E:\TestDir\Perl\sample/'; ${env:PERLDB_OPTS}='RemotePort=localhost:55242'; & 'perl' '-d' 'E:\TestDir\Perl\sample/first.pl'
Perlテゥツ鳴凝ァツ卍コテァツ陳ーテ・ツ「ツε」ツ・ョテ」ツ・ァテ」ツ・催」ツ・づ」ツ・古」ツつ・

Wide character エラーはなくなりましたが、文字の化け方が変わりました。

こまったぞ。

ふと気づきまして。Visual Studio Code のコンソール出力には PS **** と出てます。
Power Shell なんですね。
んで、こいつが Shift-JIS ベースなのではないだろうかと思ったわけです。

#! /usr/bin/perl
use strict;
use utf8;
binmode STDOUT, ':encoding(cp932)';

print "Perl開発環境出来上がり\n";

exit;

結果
PS E:\TestDir\Perl\sample> cd 'E:\TestDir\Perl\sample/'; ${env:PERLDB_OPTS}='RemotePort=localhost:55287'; & 'perl' '-d' 'E:\TestDir\Perl\sample/first.pl'
Perl開発環境のできあがり

ちゃんと日本語表示されています。
めでたしめでたし。

Linuxサーバー用のプログラムを Windows 上で開発・デバッグしたいと思っているので、環境に応じて binmode 変えなきゃなりませんね。
さて、どーしようか・・・

つづきは、また今度。

0 件のコメント:

コメントを投稿