僕に一番向いてるプログラミング言語
2007/10/18 00:17 posted by kunkichi

今更Pyth(ry
いや、ほんとまじめに勉強しようと思っています。

今更Pyth(ry
いや、ほんとまじめに勉強しようと思っています。
CodeZine にこんな記事が載ってました。
本稿では、アプリケーション開発の現場で実用されているプログラミング言語をピックアップし、それらの言語の特徴や、テキストを表示するまでの簡単なサンプルをご紹介します。これからプログラミング言語を勉強しようと考えている学生や新人開発者の方はもちろんですが、すでにプログラミング言語をいくつか覚え、新しい別の言語を学習しようと考えている方にも参考にしていただけると思います。(CodeZine)
以前紹介した『終わってるITスキルトップ10』というエントリとはちょうど逆の内容、ということで載ってたのは以下の10個。
特徴なりサンプルなりはあっちを見てもらうとして、サーバ運用SEとして必要そうなもの・必要だったもの・できればよかったなというものを個人的に上からピックアップしてみる。
メモ。printf/sprintf の 型指定で b を使うと 2進数 で出力できる。Perl 5.6以降っぽい。
$ perl -e 'printf("%3d:%08b\n",$_,$_)for(0..255)'
0:00000000
1:00000001
・・・
254:11111110
255:11111111
Solaris8 標準の Perl は 5.003だから自分で書かないと無理かな。
参考:
↓まるまる載ってた。
2進10進数変換
せっかく『あわせて読みたい』の画像をはっつけたので、どんなサイトが「あわせて」読まれてるのかな?ということで、リンクをたどってみたら、こういうのを見つけました。
cl.pocari.org - dig の出力に色をつける dig-color
dig の出力に色をつける dig-color というのを作ってみました.
リソースレコードタイプは A/NS/CNAME/SOA/MX のみにしか対応していませんので,そのほかのタイプが必要であれば追加してください.
こちらはRubyで書かれているようで、Rubyが入ってない環境は結構あるかなと思ったので、Perlで書き換えてみました。
#!/usr/bin/perl -w
use strict;
use warnings;
my %colors = (
"section" => "02;01",
"comment" => "37",
"normal" => "00",
"A" => "32",
"NS" => "34",
"CNAME" => "36",
"SOA" => "33",
"MX" => "31",
);
my @return = readpipe( "dig " . join( " ", @ARGV ));
foreach my $line ( @return ){
my $color = $colors{"normal"};
if( $line =~ /^;;.+SECTION:$/ ){
$color = $colors{"section"};
}elsif( $line =~ /^;/ ){
$color = $colors{"comment"};
}elsif( $line =~ /^(.+\s)(SOA|NS|A|MX|CNAME)(\s.+)$/ ){
$color = $colors{"$2"};
# レコードタイプのみに色を付ける場合
#$line = sprintf "%s\e[%sm%s\e[00m%s\n", $1, $colors{"$2"} ,$2, $3;
}
printf "\e[%sm%s\e[00m", $color, $line;
}
ま、単にPerlの書き方に変えただけなんだけど。変数とか配列とかの書き方とか、あとpopen使ったことないのでreadpipeに置き換えただけみたいな、本当にその程度。
むしろ、出力に色を付けるのは詳しく知らなかったので、その辺はいじらないでそのまま動かしたら、サラッと動いちゃったので本人がびっくり、みたいな(爆)
結果はこんな感じ。
色がつくだけで何気に見やすくなるんですね。オリジナルの作者の方のアイデアに感謝。
覚え書き。今までは、system()からdirnameとかbasenameコマンド叩いてたんだけど、File::Basename使えばできるんだね、ってことを今更知ったので。しかもSolarsi8標準のPerl_5.005_03で標準モジュールっぽい。
#!/usr/bin/perl
use strict;
use File::Basename;my $prg_path = dirname( $0 );
my $prg_name = basename( $0 );print “PRG_PATH=$prg_path¥n”;
print “PRG_NAME=$prg_name¥n”;
↓出力結果
# /tmp/test.pl
PRG_PATH=/tmp
PRG_NAME=test.pl
あぁ、初心者丸出し(爆
もっと勉強しよう。
2008/02/19/ 23:52
2008/01/23/ 21:27
2007/12/07/ 10:36
2007/07/23/ 02:06
2007/07/14/ 05:40