忍者ブログ
本部 : http://halloweenworks.web.fc2.com/
| Admin | Write | Comment |
すぴばる
カレンダー
09 2024/10 11
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
プロフィール
HN:
ゆきうさぎ(ゆっけ)
HP:
最新コメント
[12/26 ゆっけ]
[12/19 はすの]
[12/25 ゆっけ]
[12/22 粗製リンクス]
[12/18 ゆっけ]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

ちょろっと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日無駄にしてしまいました。
もう仕事やめたいです。


だれかー!別の職業紹介してくれーーー!!!

介護でもなんでもやるぞーーー!!!

日付変わる前に帰ってみたいよーーー!!!





 

PR
この記事にコメントする
NAME:
TITLE:
MAIL:
URL:
COMMENT:
PASS: Vodafone絵文字 i-mode絵文字 Ezweb絵文字
この記事へのトラックバック
この記事にトラックバックする
≪ Back  │HOME│  Next ≫

[43] [42] [41] [40] [39] [38] [37] [36] [35] [34] [33]

Copyright c はろうぃんわーくすっ!。。All Rights Reserved.
Powered by NinjaBlog / Material By 御伽草子 / Template by カキゴオリ☆
忍者ブログ [PR]