sironekotoroの日記

Perl で楽をしたい

Sublime Text 4 で環境変数を読み込む

Sublime Text 4 にあげました

もうアップデートすることもないかな・・・って思っていた Sublime Text ですが、起動したらアップデートを促されました。

アップデートしたところ、メジャーバージョンが上がって 4 になりました。

幸い、いまのところ(3時間くらい)困ったところは出てないです。

Sublime Text 3 の頃に設定した Perl の開発環境もそのまま動いています。

エラーメッセージの出方がちょっと違うかなーとか、それくらい。

Sublime Text 4 との出会い

2013 年に受講した Perl 入学式でおすすめされたことがきっかけです。

初心者に環境を与えると、それを親と思い込む性質がある・・・かどうかはともかく、うちは Sublime Text をメインに、 VS Code をサブに、サーバー上では vim って感じで使い分けています。

Sulime Text 4 で環境変数が読み取れない?

多分、Sublime Text 4 に限らないことだと思います。

~/.zshrcexport GOOGLE_CLIENT_ID=hogehoge こんな感じで環境変数を設定しました。

$ source ~/.zshrc で設定を反映させて、ターミナルから確認します。

$ echo $GOOGLE_CLIENT_ID
hogehoge

よしよし。

で、sublime text 上の Perl で確認します。

Sublime Text には Build System というものがあり、これは VS Code でいうところの Code Runner みたいなやつです。

書いたコードをすぐに実行して、エディタの別領域に結果を出せるという。

こんな感じ。

f:id:sironekotoro:20210531173921p:plain

で、Perl環境変数を呼び出すときはこう書きます。

#!/usr/bin/env perl
use strict;
use warnings;

print $ENV{GOOGLE_CLIENT_ID}

・・・エラー!?

f:id:sironekotoro:20210531174333p:plain

いやいやいやいや、ターミナルでは表示できてまんがな。

Sulime Text 4 で環境変数が読み取る

で、結論から言うと、この時の Sublime Text 4 は Mac の Dock から起動したものでした。

これをターミナルから起動してあげると・・・あ、うちは .zshrc にこういうエイリアス書いてます。

alias subl='/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl'

$ subl ~/Desktop/test.pl

はい、このようにターミナルからの起動であれば環境変数を読み込むことができました。

Sublime Text の Build System は既存のシェルとは独立したもののようです。

というか、前も plenv で選択した Perl のバージョンが利用されないって色々やったなそういえば(今になって思い出した)

f:id:sironekotoro:20210531174923p:plain

めでたしめでたし。