Perlの用途。


・単純なCGIとして
・本格Webサイト開発言語として
・unixシェルの1コマンドとして

もうひとつはシェルスクリプトの代用としての使い方があるのでしょうか?
その場合利点は何がありますか?

bash,cshなとでスクリプトを組もうとしていますが、コマンドごとの動きが妙に違っていたり
全体の統一感の問題や、この場合はこれができないといった不思議な弱点が多いように思い
perlにしようかと思ってます。

そのへんアドバイスいただけたらと思います。

回答の条件
  • URL必須
  • 1人2回まで
  • 13歳以上
  • 登録:2010/09/02 10:21:23
  • 終了:2010/09/02 14:07:55

回答(2件)

id:dev_zer0 No.1

dev_zer0回答回数332ベストアンサー獲得回数252010/09/02 11:22:23

ポイント40pt

まず、cshはログインシェルで使うにはともかく、プログロラム言語としては不向きです。

何故不向きなのかは有名どころとしては


なぜ csh でプログラムを書くのが良くないのか

原題:"Csh Programming ConsideredHarmful,"

http://www.kiso.tsukuba.ac.jp/~makimura/text/node239.html

があるので、それを見て下さい。


さて、シェルスクリプトとしての代用としての使い方は「あり」です

というか、私は用途によってsh/perlは使い分けています。


向いている処理としては

文字列編集を多用している処理(特にshの中でawk/sedが多用されている)


向いていない処理としては

外部コマンドを多用している処理(一々system関数を呼ぶ必要がある)

# 個人的に「`」はコマンドが正常終了したか不明なので嫌い


あと、スクリプト全般に言えますが、あまり複雑なことをさせようとすると

必要以上にソースが汚くなってしまうのが悲しいですね。

id:MASHMASH

ありがとうございます!

大変参考になります。

使い分けポイントもおっしゃるとおりだと思います。

2010/09/02 11:27:42
id:b-wind No.2

b-wind回答回数3344ベストアンサー獲得回数4402010/09/02 13:07:00

ポイント35pt

もうひとつはシェルスクリプトの代用としての使い方があるのでしょうか?

Perlとは…?

もともと Perl の出自からしてそういう目的で作られた物だからねぇ。

sh, awk, sed あたりから文法持ってきてるから、記号が多くて嫌われやすい一因にはなってるし。


・単純なCGIとして

・本格Webサイト開発言語として

・unixシェルの1コマンドとして

向き不向きは別とすればこれらすべて shell スクリプトで実現する事も不可能ではない。


極論すれば shell スクリプトは外部コマンドを使用する事を前提として本体機能を押さえたスクリプト言語

という側面はあるから。



その上で大きな違いと言えば結局の所、1点に集約できる

  • shell スクリプトは外部コマンドの動作に極端に依存する

高機能なコマンドがあればスクリプト自体は簡潔で済むが自身で実装しようとすると難易度が極端に上がる

  • perl スクリプトは基本的には Perl およびそのライブラリのみで完結する

外部コマンドの利用も出来るがあまり得意ではない。( まともに使うなら system じゃなくて fork と exec つかうけど面倒 )


後はどういう内容の事をやらせるか次第かな。

この場合はこれができないといった不思議な弱点が多いように思い

単にその shell の文法や適した外部コマンドを知らないだけの可能性もあるので何とも言い難いところ。

ぶっちゃけ shell スクリプト中に Perl のワンライナーがはいってても良いわけで「出来無い」って事は無いと思うんだけど。

id:MASHMASH

ありがとうございます。

できないは言いすぎでしたね。

やりやすいかどうかだと思います。

2010/09/02 13:18:37

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません