Perl: 2006年9月アーカイブ
カレンダーを作りました。
用途は、見るだけです。(ショボイ)
これ単体ではショボイですが発展させれば、日記、予定表、ブログパーツなどに応用できます。
パッケージというのはモジュール(部品)と同じ意味で、 よく使うコードを毎回コピペするのではなく、一カ所においてそれをいろんな場所から参照して使うことです。
イメージ的にはCSSとかjavascriptの外部参照に近いです。
実世界でたとえると、オフィスで各自が机の中にしまっている文房具を没収して、部署共有の場所にまとめて保管するのと同じことです。 こうすればハサミもノリもホッチキスも、部署に一個ですみます。
実世界では、シャーペンや消しゴムは使用中は占有されるので一個だと足りないですが、コンピュータの世界ではひとつのモジュール(部品)を複数のプログラムが同時に利用できるので、シャーペンや消しゴムにあたる頻繁使用部品も一つで大丈夫なのです。
これによって、同じコードをコピペ使いまわす必要もなくなり、亜種の発生も防げます。(使い方の違う二つのシャーペンが混在すると作業能率が落ちる)
...という理解でほぼあってるはずですが、間違いがあったらご指摘くださいませ。M(_ _)M
PerlでDBIモジュールを使ってmySQLを操作できるようになりました!
ワーイワーイ。(^^)
これでやっと、
LAMPデビューです!!
パチパチ
( 注: LAMP = Linux, Apache, mySQL, Perl/PHP )
長く苦しいい道のりだった。くくく・・・
超簡単なアプリを作ったので公開します。
前回と同じタイムスタンプです。
前回は裏の仕組みがPerl+CSVでしたが、今回はリッチにPerl+DBI+mySQLです。
大いなる第一歩です。
ああ感激。
ソースはこれ↓
========== dbi_timestamp.cgi ==============
#!/usr/local/bin/perl
print "Content-type: text/html\n\n";
use DBI;
$user = '***';
$passwd = '***';
$dbh = DBI->connect('DBI:mysql:db:localhost', $user, $passwd);
$sth = $dbh->prepare("
INSERT INTO timestamp
VALUES(NULL);
");
$sth->execute;
$sth = $dbh->prepare("
SELECT * FROM timestamp ORDER BY timestamp DESC
");
$sth->execute;
while(@a = $sth->fetchrow_array){
print "$a[0]\n";
}
$sth->finish;
$dbh->disconnect;
print "DBI test is done!\n";
====================================
参考サイト
http://2php.jp/mysql/insert.html
http://www.rfs.jp/sb/sql/index.html
久々の定時出社。すがすがしい。
プログラマーの友人に電話する。 「Perlは金にならない」と言われて不安になる。
S社長からメールが来る。一件仕事を受注した。 起業はまだだけど、これは偉大な第一歩だ。
プログラムを作りました。
ネット版タイムスタンプです。
このページにアクセスすると、アクセスした日時が記録として残ります。
【用途】 個人の時間記録として使えます。
・起床時間、睡眠時間、勤務時間(始業・就業)の管理、通勤通学時間の測定、などなど。
・よく会話のネタになる"ドアtoドアで何時間?"を測定できます。
この質問、答えられないこと結構ありませんか?
cgiのソース(perl)はこちらです。
#!/usr/local/bin/perl
print "Content-type: text/html\n\n";
# Set time
($sec, $min, $hour, $day, $mon, $year, $wdy, $yday, $isdst)
= localtime(time);
@youbi = ("日","月","火","水","木","金","土");
$year += 1900; $mon++;
#
$str = sprintf("%04d/%02d/%02d %s %02d:%02d:%02d\n",
$year,$mon,$day,$youbi[$wdy],$hour,$min,$sec);
open(OUT,">log.tmp");
print OUT $str;
close OUT ;
open(IN, "log.dat");
open(OUT, ">>log.tmp");
while(){ print OUT;}
close IN;
close OUT;
open(IN, "log.tmp");
open(OUT, ">log.dat");
while(){
print OUT;
print $_."\n";
}
close IN;
close OUT;