●●●でPerl
はてな Id:babydaemonsTwitter babydaemons
関係者の皆様、Nagoya.pm #01の開催おめでとうございます!
●●●でPerl
CygwinでPerl ?
いや、Cygwinなんて変態な環境使う人は自力でどうにかするので
CygwinでPerl ?
今日は
レガシー
由緒正しい
FreeBSDでPerl !
※このスライドの 使用上の注意
過去のISOを落として
再現確認せずにWikipediaと
過去の記憶で書いてますので
そこのところ、ご理解とご協力を
強制します!
何故由緒正しいFreeBSDでPerlするのに
こんなスライドが必要なのか
時系列的には、3.0-RELEASEで/usr/bin/perl が
登場!Perl実装のOS標準コマンド大幅追加!
/usr/bin/perl は3.5-RELEASEまで
存在したけど
4.0-RELEASEで/usr/local/bin/perl へ
左遷されました。orz
証拠画像
FreeBSDリリース履歴:・1998/10/15 3.0-R・1999/12/20 3.4-R・2000/03/13 4.0-R・2000/06/24 3.5-R
と言う訳で要バイナリパッケージインストール
# sysinstall
これはかったるいのでコマンドラインで
# pkg_add -r perl
何故、Perlは4.0-RELEASEでOS標準コマンドで無くなったのか?
perl(処理系)リリース履歴:・1994/10/17 5.000・yyyy/mm/dd 5.004・1998/05/22 5.5.0・2000/06/24 5.6.0
perl(処理系)リリース履歴:・1994/10/17 5.000・yyyy/mm/dd 5.004・1998/05/22 5.5.0・2000/06/24 5.6.0
our文やウィークリファレンス、warningsプラグマの導入など、言語コアが大きく拡張された。試験的ながらUnicodeのサポートを開始した最初のバージョン。
FreeBSD開発チームはこんなに変更されたバージョン使えねー
と思ったらしい
3.0-RELEASEで追加されたPerl実装の
OS標準コマンドはBorne Shell Scriptや
C言語で書き換え!
え・・・?しぇるすくりぷと??
PerlのShell Scriptに対するメリット
・fork()せずにファイル操作が出来る→cp, mv, rm, rmdir
・fork()せずに文字列操作が出来る→sed, awk, grep
ファイル操作ですらプロセス起動の
オーバーヘッドが増えちゃうじゃん!
文字列操作もプロセス起動の
オーバーヘッドが増えちゃうじゃん!
テンポラリファイルも必要になるぞ!!
オーバーヘッドは問題ないの?
何てことはない!
1977年から連綿と改善されている
kernelとuser landには屁でもなかった
さすがは
レガシー
由緒正しい
*BSD !
ちなみに
Cygwinで同じアプローチを
取ったら悲惨なことになります。orz
あと
ユーザインタラクティブなコマンドを書き換えたので
実行時間が短かったと言うのもあります
おしまい
ご清聴、ありがとうございました!