2008/08/24(日) [n年前の日記]
#1 [prog] Windows上でのPerlのワンライナーのやり方がよくわからない
eclipse上で正規表現を使って選択範囲を置換したいと思ったものの、指定の仕方が判らない。行末に特定文字列を追加したいだけなのだけど…。ならばと、選択範囲をPerl等に渡して置換しようかと。ワンライナーが使えるはず。
が。巷のワンライナー関連の紹介ページを見ながら、まずは Windows + ActivePerl + コマンドプロンプト上で試してみたけど。アレはUNIX環境上でのみ通用するソレ、という感じらしい。
諦めきれずに関連情報を検索していたら、「昔の ActivePerl ならともかく、今の ActivePerlはワンライナーを使えるはず」という一文を見つけて、ならばとActivePerlのドキュメントを眺めたり。どうやら、「'」で挟まずに「"」で挟んで、かつ、「"」を書きたいときは「""」と書けばいいらしい。いや、「""」を使わず「qq(〜)」「q(〜)」と書くこともできる、とも書いてあった。
たとえば、行末にJavaのコメント行をつけるときはこうなる。
が。巷のワンライナー関連の紹介ページを見ながら、まずは Windows + ActivePerl + コマンドプロンプト上で試してみたけど。アレはUNIX環境上でのみ通用するソレ、という感じらしい。
諦めきれずに関連情報を検索していたら、「昔の ActivePerl ならともかく、今の ActivePerlはワンライナーを使えるはず」という一文を見つけて、ならばとActivePerlのドキュメントを眺めたり。どうやら、「'」で挟まずに「"」で挟んで、かつ、「"」を書きたいときは「""」と書けばいいらしい。いや、「""」を使わず「qq(〜)」「q(〜)」と書くこともできる、とも書いてあった。
perl -e "print ""Hello world"""
perl -e "print qq(Hello world)"こんな感じに書くようで。 *1
たとえば、行末にJavaのコメント行をつけるときはこうなる。
cat test.txt | perl -nle "s/$/ \/\/ 0/;print $_"*2
[ ツッコむ ]
#2 [neta][prog] プログラミング言語界隈は優越感ゲームに陥りがちな気がする
_経験年数2年半のJavaプログラマがちょっと書くよ。
という記事を眺めてるうちにそんな電波が飛んできたのでメモ。
言語仕様をたくさん知ってれば使える人材、というのはなんか違う気がする…。プログラマーが勉強する範囲・ジャンルって今では(いや、昔からか)多岐に渡るから、ある一面だけを見て評価を下すのは危険、と思わないでもない。
と言っても自分も学生の頃は「XOR AでAレジスタクリアができるよ。しかもクロック数が一番少ないよ」と得意気にテスト答案(!)に書いてたクチなんでアレなんだけど。…そんなバッドノウハウ(?)より恒久的に活用できる知識を脳に記録したほうが結果的に使える人材になったのだろうとは思うけど、当時は、非力なCPUパワーが処理の実現にあたっての最大の障壁になり得るそんな時代だったから仕方がないような気もする。などと昔話を始めるあたりがもう優越感ゲームに陥ってる証拠なのかもしれない。
というかそもそも「使える/使えない」の定義がよくわからない。なんだかものすごく出来る人物と比較して「使える/使えない」の判断を下してる気もする。若者が陥りがちな罠。TVに出てる芸能人の容姿を基準にして周囲の人物の容姿判断をしてしまう幼さ、みたいな。いや、他人のことは言えないのだけど。
言語仕様をたくさん知ってれば使える人材、というのはなんか違う気がする…。プログラマーが勉強する範囲・ジャンルって今では(いや、昔からか)多岐に渡るから、ある一面だけを見て評価を下すのは危険、と思わないでもない。
と言っても自分も学生の頃は「XOR AでAレジスタクリアができるよ。しかもクロック数が一番少ないよ」と得意気にテスト答案(!)に書いてたクチなんでアレなんだけど。…そんなバッドノウハウ(?)より恒久的に活用できる知識を脳に記録したほうが結果的に使える人材になったのだろうとは思うけど、当時は、非力なCPUパワーが処理の実現にあたっての最大の障壁になり得るそんな時代だったから仕方がないような気もする。などと昔話を始めるあたりがもう優越感ゲームに陥ってる証拠なのかもしれない。
というかそもそも「使える/使えない」の定義がよくわからない。なんだかものすごく出来る人物と比較して「使える/使えない」の判断を下してる気もする。若者が陥りがちな罠。TVに出てる芸能人の容姿を基準にして周囲の人物の容姿判断をしてしまう幼さ、みたいな。いや、他人のことは言えないのだけど。
◎ 便利なのか慣れなのかの判断も難しい。 :
便利になるから(作業効率が上がる、ソースの可読性が上がる、打鍵数が減る等々)その言語仕様を欲するのか、単に自分が今まで慣れた書き方をしたいからその言語仕様を欲するのか、そのあたりからして真っ当に判断できてるか怪しいと思う時もしばしば。言語仕様に関する「〜であるべき」論は判断が難しい。
全ての言語仕様を取り込んで業界の標準になる超高級言語、とか誕生しないかな。それさえ勉強すればプログラマーとしてやってけます、てな感じのデファクトスタンダードに。高級言語は最終的に実行バイナリを出力するけれど、超高級言語は最終的に高級言語のソースを出力する。実行バイナリをいきなり出力しちゃう仕様にすると各環境における実装が難しくなって移植が全然進まない=普及しないから、まずは高級言語のソースを出力するに留める。その代わり、C/C++やJavaはもちろん、LispやCOBOLも出力できる、とか。嘘。実現できそうな予感がまったくしない。
全ての言語仕様を取り込んで業界の標準になる超高級言語、とか誕生しないかな。それさえ勉強すればプログラマーとしてやってけます、てな感じのデファクトスタンダードに。高級言語は最終的に実行バイナリを出力するけれど、超高級言語は最終的に高級言語のソースを出力する。実行バイナリをいきなり出力しちゃう仕様にすると各環境における実装が難しくなって移植が全然進まない=普及しないから、まずは高級言語のソースを出力するに留める。その代わり、C/C++やJavaはもちろん、LispやCOBOLも出力できる、とか。嘘。実現できそうな予感がまったくしない。
[ ツッコむ ]
以上、1 日分です。