2020/08/15(土) [n年前の日記]
#1 [perl] Perlについて勉強中
Windows10 x64 2004 + IIS上で、Perlで書かれたCGIを動かせるように設定したついでに、今時のPerlについて少し勉強中。
Perlと言えば後方互換性を重視している言語と思い込んでいたのだけど、バージョンが上がるにつれて結構仕様が変わっていて、昔書かれたスクリプトが動かない状態になっていたりするようで。
先日引っ掛かった defined(@array)、defined(%hash) もソレで。Perl 5.16の頃は警告を出していたけれど、Perl 5.22 では致命的エラーとして扱われるようになったらしい。それぞれ、(@array)、(%hash) と書き直せばいいらしいけど。
@INC に「.」が含まれなくなったあたりも結構大きい。Perl 5.26 で変わったらしいけど。
_第46回 Perl 5.26で変わること(1):Perl Hackers Hub|gihyo.jp … 技術評論社
_第46回 Perl 5.26で変わること(1):Perl Hackers Hub|gihyo.jp … 技術評論社
_Perl 5.26への@INC問題にアップグレード前に対処しておきましょう - Perlゼミ
_'.' in @INC問題とその対処法について(2017年3月版) - Charsbar::Note
Strawberry Perl 5.30.3.1-x64-portable で、この日記ページのCGI(hns)を動かしてみたら、見事にエラーが出てしまった。とりあえず、エラーの出た .cgi の先頭に、解説記事にあった以下の記述を追加して動くように誤魔化してみたり。
Perlも変わっているのだな…。
Perlと言えば後方互換性を重視している言語と思い込んでいたのだけど、バージョンが上がるにつれて結構仕様が変わっていて、昔書かれたスクリプトが動かない状態になっていたりするようで。
先日引っ掛かった defined(@array)、defined(%hash) もソレで。Perl 5.16の頃は警告を出していたけれど、Perl 5.22 では致命的エラーとして扱われるようになったらしい。それぞれ、(@array)、(%hash) と書き直せばいいらしいけど。
@INC に「.」が含まれなくなったあたりも結構大きい。Perl 5.26 で変わったらしいけど。
_第46回 Perl 5.26で変わること(1):Perl Hackers Hub|gihyo.jp … 技術評論社
_第46回 Perl 5.26で変わること(1):Perl Hackers Hub|gihyo.jp … 技術評論社
_Perl 5.26への@INC問題にアップグレード前に対処しておきましょう - Perlゼミ
_'.' in @INC問題とその対処法について(2017年3月版) - Charsbar::Note
Strawberry Perl 5.30.3.1-x64-portable で、この日記ページのCGI(hns)を動かしてみたら、見事にエラーが出てしまった。とりあえず、エラーの出た .cgi の先頭に、解説記事にあった以下の記述を追加して動くように誤魔化してみたり。
BEGIN { push @INC, "." if $INC[-1] ne "."; }
Perlも変わっているのだな…。
[ ツッコむ ]
以上です。