#!/usr/bin/env perl
print "Hello, Perl\n";
最初なんであまり詰め込まず最低限の内容だけ
1行目は ./ファイル名 で実行した際に何で実行するかを識別するためのシェバンを書く
あとは、print関数で文字列渡して出力
print 関数は改行を自動で出力しないので必要に応じて改行は記載する
文のおわりはセミコロンをつける
#!/usr/bin/env perl
print "Hello, Perl\n";
最初なんであまり詰め込まず最低限の内容だけ
1行目は ./ファイル名 で実行した際に何で実行するかを識別するためのシェバンを書く
あとは、print関数で文字列渡して出力
print 関数は改行を自動で出力しないので必要に応じて改行は記載する
文のおわりはセミコロンをつける
#!/usr/bin/env perl
これを書きましょ
スクリプトファイルを実行する際に、何で実行するかを伝えるためのものとして記載
#!とかくことから、ハッシュ・バングが shebangになったという噂
昔は、 #!/usr/bin/perl と書くのが定番。今は#!/usr/bin/env perl
perl ファイル名 で実行した場合
perl コマンドを環境変数のPathの中から順に探していき、/usr/binディレクトリ内でperlを見つけて実行することになるが
./ファイル名 で実行すると何で実行すればよいかわからないので、ここでシェバンが登場
(chmod 755 ファイル名で実行権限をつけておくこと)
#!/usr/bin/perlなら /usr/binディレクトリのperlを実行
#!/user/bin/env perl だと
/usr/bin ディレクトリにあるenvコマンドで環境変数のPath内からperlコマンドを探すことになる
(perl ファイル名 と一緒)
#!/usr/bin/perl だと 環境が変わって存在しなかった時動かないので、#!/usr/bin/env perl で幅広く探して実行の方が汎用的という話
perl ファイル名でも ./ファイル名でも(#!/usr/bin/env perl)なら
環境変数のPATHを見に行く。
その時、plenvをいれているとPATHの先頭の方に、~/.plenv/shims がある
そこに perl というファイルがある
要するに、同じ名前の別のプログラムおいて、実行すべきバージョン情報を探して、
それをplenvが管理しているとこから探して実行するつなぎの処理をしているって感じ
このファイルを実行することでどのバージョンのPerlを実行するのか調べる
1〜4でバージョンが見つかれば、.plenv内にインストールされているperlから該当のバージョンを探して実行する形になる
という流れとのこと。。
初めてのPerlだと書籍としては、 #!/usr/bin/perl で統一されているが
1.4.2 このプログラムの中身はどうなっているのでしょうか? に #!/usr/bin/env perl の記載がありますね
複数のバージョンのPerlを入れて使うためにplenvをインストール
macなのでHomebrewでインストール
$ brew update
$ brew install plenv
$ brew install perl-build
plenvとperl-buildの関係
生成AIさん!説明よろしく!
perl-buildは、plenvでPerlの新しいバージョンをインストールするときに使う「Perlビルド支援プラグイン」です。
具体的には、指定したPerlのバージョンのソースコードを自動でダウンロードし、ローカルマシン上でビルド・インストールする役割を担っています
plenv単体ではPerlのバージョン管理や切り替えはできますが、Perl本体のインストール機能は持っていません。perl-buildをプラグインとして追加することで、plenvコマンドから簡単にPerlの各バージョンをインストールできるようになります
なお、バージョンの切り替えには、shimsという仕組みを使っていて、 plenvのshimsが動作するよう、シェル起動時にplenvの初期化(plenv init)を実行する必要がある
bash使ってるので.bashrcに以下を追加
eval "$(plenv init -)"
ファイルの再読み込み
$ source ~/.bashrc
plenv使い方メモ
# plenvのバージョン
$ plenv -v
plenv 2.3.1
# インストール可能なPerlバージョン一覧(x.y.z の yが偶数が正規版、奇数が開発版)
$ plenv install -l
Available versions:
5.41.13
5.41.12
(略)
5.40.2
(略)
# Perlのインストール
$ plenv install バージョン
$ plenv install 5.40.2
# インストール済みPerlのバージョン一覧(*がついているのが現在選択中のPerl)
$ plenv versions
* system (set by /Users/ユーザー名/.plenv/version)
5.40.2
# 使用するperlバージョンの切り替え
$ plenv global バージョン
$ plenv global 5.40.2
# 切り替わったか確認
$ plenv versions
system
* 5.40.2 (set by /Users/ユーザー名/.plenv/version)
Perlのバージョンを確認してみる
$ perl -v
This is perl 5, version 40, subversion 2 (v5.40.2) built for darwin-2level
(略)
# ローカルで使用するPerlバージョン(.perl-versionファイルが作られる)
$ plenv local 5.40.2
$ cat .perl-version
5.40.2
# モジュールインストールのためcpanmをインストール
$ plenv install-cpanm
Perl5.8の頃以来にひさびさにさわってみたくなったので買ってみた
相対的にみて新しい情報が乗っているのはこの本くらいかなと
あとはネットを徘徊しながらAIに聞いてみましょ
Perlは、5.8の頃(2000年初頭)あたりに触り始め、その後 5.10あたりで離脱
いずれにしろ、仕事ではなく趣味で軽く触っていた程度。
初めてのPerlの第7版だというのに最初のページを読むと
『初めてのPerl』の第7版へようこそ。第7版では、Perl 5.24 とその最新機能に関する情報が追加されています。本書は、まだPerl 5.8 を使っている方にも活用していただけます
ん?いまだに5.8なのか・・・