12 | 2025/01 | 02 |
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
吸血巨大ヒル襲来! [DVD] | |
株式会社アネック 2010-01-08 売り上げランキング : 120003 おすすめ平均 おいおい ヤバすぎて笑えます!! もしかしてリメイク?? Amazonで詳しく見る by G-Tools |
ちょろっとPerlについて備忘碌として書きなぐります。
正直、一般人にとってはどーでもいい内容なので読まなくて結構です。
あいも変わらずデスマーチが続いております。
ホームページの仕事なんてやりたくねーよ。
私の担当って駐車場管理とか酒小売のシステムなのに。
しかも一人ってどーゆーこと?もう1ヶ月ぐらいかかってるけど終わる気配ねーよ。
今日もお客さんから修正要望のFAXが来てました。
30枚ぐらい。
しかもCGIの部分。これ、仕様変更だって意識ねーよなぁ。お客さん。
電話なら屁理屈並べて断ってやるのに。電算の担当マジ殺してぇ。
CGIは基本的にPerlで作っています。
もちろんデータはテキストをdatとして保存です。
PHPなんて小洒落たモンは使う気はさらさら無いですよ。うふふ。
まぁ今回は 顧客管理、アンケート、メルマガ と結構作る部分があるので
おとなしくMySQLでDBを作成しました。
なつかしーなー。MySQL。入社当時以来かなー。
社内用の日報管理のシステム作らされたんだよなー。
入社当時っていうか、入社3日目ぐらいか。一般常識の座学終わってすぐか。
もちろん当時は卒業したてのほやほやでしたからね。
PerlもPHPもMySQLもなんもわかってなかったです。
結局どうやったんだっけ。ASP.NETつかったんだっけ。
わからないことは誰に聞けばいいですか?って聞いたら
誰もわからないよ って返ってきて
ばかじゃないの?(´・ω・`) って思ったのは未だに覚えてます。くたばれ。
ぶっちゃけ安くあげるためにMySQLは仕事で全くつかってなかったから、
また一から勉強ですよ。
嘘です。そんな眠みー事やってられるか。設計?うるせーんだよ。
設計仕様なんて製造しながら作るもんなんだよ。
いちいち仕様書見ながら作るとかちょこざいなんだよ。
どーせ一人でやるんだから。つーか仕様まとめる時間が無い。予算も。
そんなこんなでもう4年ぐらいやってるわけですが、
やっぱりさ、前から思ってるんだけど、
Perlの構文考えたやつってマジで頭おかしいだろ。
まぁ、正規表現はいいよ。実際便利だしね。
ただ全体的にはしょり過ぎなんだよ。
サブルーチンのデータの受渡なんて最初意味わかんなかったしさ。
つーかソースみてもわかんなかったわ。
&message($test);
sub message{
$msg = shift;
初見でこれ看破できるやついるの?頭おかしいんじゃないの?
ちなみにマニュアルとか参考書とか見るの論外な。
プログラムはソース掻っ捌いて覚えるものですから。
まぁ簡単にいればこうゆうことなのな。
$msg = shift @_; ← 【@_に受け渡しデータが格納】
略すなぼけーーーーーーーーーーーーーーーー!!!
$_ とか @_ とか文字化けかと思ったわーーーー!!!
なんの話だったっけ・・・
あぁ、MySQL + Perl の話をしたかったんだ。
基本的に上の組み合わせは今ではめずらしいのかな。
PHPの方が主流になってるっぽいです。
まぁ、めずらしくもないか。PHPやってる人から見たら
ぷっwPerl(笑)みたいな感覚なだけか。Fuckin’ us.
PHPってよくわかんないんだけど C + Perl みたいな感じ?
つかわねーからどうでもいいんだけど。
でだ、MySQL + Perl でやるのは、恥ずかしながら初めてだったわけです。
でまぁ、なにも考えずにガリガリ作って、DBに登録できる所まですすめました。
なんだ、簡単じゃん。とか思った矢先、
文字化けしてはる・・・(´・ω・`)
まぁ、当然の事なんですけどね。
プログラムはSJISなのに、DBがUTF-8に設定されてるので、化けて当たり前なんです。
なので送るデータをUTF-8にコンバートして再度実行。
うごかない・・(´;ω;`)
な・・・なんで?何がおかしいの?
ここもPerlのめんどくさい所なんですが、
基本、デバックというものが無いわけです。
動くか、動かないか、あとはソース削っていって患部を見つけるわけですが、
この作業、Visual Studio で甘やかされて育ったPGには拷問だろ・・・。
何やっても動かないので、グーグル先生に御尋ねした結果、
ソースをUTF-8で書けばいいじゃん。
とかぬかしやがった。
えー。めんどくさいなー・・・。
ともあれ、まずはDBに書き込めないと話にならないので、UTF-8に書き換えてみました。
文字化けしてはる・・・(´;ω;`)
またか、と 見・せ・か・け・て、ソースをUTF-8じゃなくてUTF-8Nにしないといけないのは
気付いているのさ、試しただけさ。Yeah!
かわんなかった・・・(´-ω-`)
ころっ!ころっ!ころころっころすっ!Perl考えたやつ殺す!
しかもUTF-8のせいで、テキストボックスが大きさ変わったりレイアウト変わったりで
ストレスMAXだぜ。Sun Of a Bitch!!
でまぁ、丸一日ぐらいかけて試行錯誤を繰り返したんですが、最終的に
『実行するSQL文をSJISに宣言するだけでよくね?』
とう結論に至りました。どうも最初に動かなかったのは、違う部分のエラーの様でしが。
私の一日を返してっ!
振り返ってみればかんたんなのなー。馬鹿みたい。私馬鹿みたい。
最終的に下みたいな共通モジュール作りました。便利だなーMySQL。
sub DB_READ{
my $strSQL = shift @_;
my $num_rows;
my @arr_rows;
my $flgSQL ='OFF';
if ($strSQL =~ /^(SELECT){1}/) { $flgSQL = "ON"; }
use DBI;
$user = 'ユーザー名';
$passwd = 'パスワード';
$db = DBI->connect('DBI:mysql:DB名:localhost', $user, $passwd);
$sth = $db->do("set names sjis"); ←(´・ω・`)
$sth = $db->prepare($strSQL);
$sth->execute;
$num_rows = $sth->rows;
if ($flgSQL eq 'OFF') {
### INSERT,UPDATE,DELETE ########
@arr_rows = $sth->fetchrow_array;
$sth->finish;
$db->disconnect;
return($num_rows, @arr_rows);
#################################
} else {
### SELECT ######################
for ($i=0; $i<$num_rows; $i++) {
@FA = $sth->fetchrow_array;
$FA = join('<>', @FA);
push(@arr_rows, $FA . '<>');
}
$sth->finish;
$db->disconnect;
return($num_rows, @arr_rows);
#################################
}
}
これでSELECT文では、<>に区切られたレコードが出てきます。
それ以外では$num_rowsに成否のフラグで格納されます。(失敗なら-1)
え?なんて出不精なソースなのかって?
うるせーんだよ。めんどくせーんだよ。同じソース何度も書くのが。
ということで、ただでさえ時間がないのに、1日無駄にしてしまいました。
もう仕事やめたいです。
だれかー!別の職業紹介してくれーーー!!!
介護でもなんでもやるぞーーー!!!
日付変わる前に帰ってみたいよーーー!!!