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 変えなきゃなりませんね。
さて、どーしようか・・・

つづきは、また今度。

2020年6月1日月曜日

自分のblogが表示されなくなってしまった。

どうも最近、このブログを Chrome で表示できない状態になってたみたいで。

alexgorbatchev.comを待機中です...
と表示されて延々とだんまりになります。

ページのソースを表示させるとソースは表示できてる。
んで、上記のドメインが書かれている場所のソースを curl で覗いてみますと、

curl https://alexgorbatchev.com/pub/sh/current/styles/shCore.css
curl: (35) schannel: next InitializeSecurityContext failed: Unknown error (0x80092012) - 失効の関数は証明書の失効を確認 できませんでした。

証明書エラーで、取得できないようで。
んで、これって、たぶんページのデザインなんだろうな、と思いいたり
IEでログインしてテーマのデザインを適当に別のデザインに変更しました。

すると、上手く表示されるようになりました。

テーマで Simple を使ってると(ここの場合 Bold を選択してました)ダメなんじゃないかな。
ということで、同じように困っている人は、IEでログインしてテーマを変更するといいよ。