トップページ⇒php
1001コメント332KB

Perlコーディング初心者質問スレ Part 61

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2010/06/05(土) 21:11:10ID:???
Perlのコーディングで困ってる人のスレです。

【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
「コマンドの意味がわかんない」とかはマニュアル見ましょう。
回答者さんは何でも屋じゃありません。

1: 自分はこういう事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。

最低でも1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。

お勧めサイトは >2 以降

前スレ http://pc11.2ch.net/test/read.cgi/php/1251989472/
0554Perl忍者 ◆M5ZWRnXOj6 2010/10/09(土) 21:58:06ID:7nxLhNm/
俺は死なない…たとえ肉体は滅んでも俺の遺志を継ぐものが必ず立ち上がり、そして松本ひろゆき、Rubyたちを倒す!
0555nobodyさん2010/10/09(土) 23:06:01ID:???
de?
0556nobodyさん2010/10/10(日) 02:11:40ID:???
シャッフルは俺の得意分野

use List::Util 'shuffle';
foreach $Key(shuffle keys %P){
@VS_VALUES = split(/\s/,$P{"$Key"});
}

HASHはランダムに納められてるだけでランダムに表示されるわけではない
0557nobodyさん2010/10/10(日) 14:38:29ID:???
>>556

>>526
0558nobodyさん2010/10/10(日) 18:34:10ID:???
list.txt内にユーザーID:名前と記録してるのですが、
この中から名前を検索して、リンクのさいにuser.cgi?=ユーザーIDとしたいのですが、どのように書けば良いのでしょうか?
0559nobodyさん2010/10/10(日) 19:31:01ID:???
>>558
>>1
依頼されたツールを誰かが作るスレ
http://hibari.2ch.net/test/read.cgi/php/1078997682/
金出すからスクリプト作ってよvol.1
http://hibari.2ch.net/test/read.cgi/php/1150508106/
0560nobodyさん2010/10/14(木) 13:38:00ID:???
メールフォームの開発の話。
最初はGETメソッドで開発して、
最後にPOSTに変更するとやり易いなあと。
クエリーがアドレスバーに表示されるので、渡すデータやキーを確認できるから。
これまでは$queryで処理結果ページに表示してた

そう思わない?
みんなどうしてる?

日本語スマソ
0561nobodyさん2010/10/14(木) 14:36:32ID:???
>>560
>>1
【総合】 Webprog板質問雑談スレッド 1
http://hibari.2ch.net/test/read.cgi/php/1131016915/
開発環境おしえて
http://hibari.2ch.net/test/read.cgi/php/1171452901/
スクリプト言語と開発効率について
http://hibari.2ch.net/test/read.cgi/php/1177517787/
生産性、効率性を重視した開発環境
http://hibari.2ch.net/test/read.cgi/php/1005486101/
0562nobodyさん2010/10/15(金) 16:50:22ID:1IbFyG9F
DBIでmysqlのblob型に入ったテキストを取り出したいのですがテスト環境ではうまくいくのですが

本番環境では文字化けしてしまいます。Mysqlのバージョンは5.1.34です。

テキストはUTF8でバイナリデータとしてはきちんと入っていました。

Blob型からデータを取り出すときには何かしないといけないのでしょうか?
0563nobodyさん2010/10/16(土) 10:56:52ID:???
取り出すときにset names utf8とかすれば?
0564nobodyさん2010/10/16(土) 12:03:58ID:???
>>563
接続時はSET NAMES utf8としていますが

SQLの実行直前ですか?

ぐぐるとSET NAMES binaryとしている人もいるようです

0565nobodyさん2010/10/16(土) 12:15:08ID:4m15JmGp
>>563
ナイスヒントでした。

SET NAMES utf8ではだめでしたが直前でSET NAMES binaryを入れたところ化けないようになりました。

blob型を使うときは切り替えないといけないんですね

0566nobodyさん2010/10/17(日) 15:28:24ID:???
>>560
好きな方法使えばいいよ。
0567nobodyさん2010/10/19(火) 10:27:12ID:???
use LWP::UserAgent;

と

require LWP::UserAgent;

とは同じということでよろしいかな?
0568nobodyさん2010/10/19(火) 10:33:23ID:???
下の方法で呼べるっけ?
0569nobodyさん2010/10/19(火) 10:33:56ID:???
そう書いてあるHPがあるんだ。
意外だた。
0570nobodyさん2010/10/19(火) 10:38:28ID:???
動作が違うけどそれでもよろしければ。
0571nobodyさん2010/10/19(火) 10:40:06ID:???
>>567
違うのはimportの有無と読み込みタイミングだが、LWP::UserAgentは
$ua = LWP::UserAgent->newしたら$uaのメソッド呼ぶだけだから普通の
使い方なら特にimportしなきゃいけないもんないしな。どっちでもいいん
じゃない?
0572nobodyさん2010/10/19(火) 10:41:05ID:???
SYNOPSYSにも

require LWP::UserAgent;

ってなってるしな。
05735672010/10/19(火) 10:42:31ID:???
このスレすごい。(;´∀`)
0574nobodyさん2010/10/19(火) 11:17:20ID:???
は〜わかんね。perlのモジュール。(;´Д`)
0575nobodyさん2010/10/19(火) 11:43:50ID:???
sprintf("%d", 680*1.4)
が951になる理由を教えてくれ
0576nobodyさん2010/10/19(火) 12:10:30ID:???
理由はわからんなぁ。。でもそういう内部処理を解説してるサイトどっかで見た
1.4が少数部持ってるから掛け算した結果も小数部を持つ952
これを%d整数としてはめ込むときにどうにかしてるんだから (680*1.4) . ''で
一旦文字列にすれば952になるだろうね
0577nobodyさん2010/10/19(火) 12:16:23ID:???
掲示板作ってるのですが、なぜ2ちゃんねるはdatファイルでログを作成しているのでしょうか?
textファイルじゃダメなんでしょうか?
2ちゃんねるのログをそのままtextファイルを使用した場合のデメリットなどがあったら教えてください
0578nobodyさん2010/10/19(火) 12:17:24ID:???
>>575
丸め誤差でぐぐれ
0579nobodyさん2010/10/19(火) 12:23:44ID:???
>>577
ただのテキストだと本文に他の記事をコピペされると記事の区切りとか
わかんなくなったりするので、はっきり区別がつくように特別な約束を決めて
あるわけだな。
0580nobodyさん2010/10/19(火) 12:24:07ID:???
2ちゃんねるのログはテキストファイルだよ。
0581nobodyさん2010/10/19(火) 13:11:09ID:???
そういや今ふと思ったんだが2chといい何で今の掲示板には必ずといっていいほど
メール欄[ ]
↑これがあるけど、需要ねぇだろコレ
マジ何でほぼ全ての掲示板に共通してあるんだよ
0582nobodyさん2010/10/19(火) 13:27:15ID:???
事実上sageって書く欄になってしまってるがいきなり名前を変えたら
混乱するからな。
0583nobodyさん2010/10/19(火) 13:42:10ID:???
拡張子なんて飾りです……偉い人にはそれが分からんのですよ
05845752010/10/19(火) 18:46:36ID:???
機械の中は2進数の世界というのが理由か
680*14/10 として小数を使わなければいい
よくよく考えてみたら当たり前の話だな


intで切り捨てとかsprintf使えとか言うてるサイトは死滅してくんねーかな
0585nobodyさん2010/10/19(火) 18:55:35ID:???
自分の知識の無さを放っておいて氏ねですかそうですか
0586nobodyさん2010/10/19(火) 19:08:01ID:???
int も、 sprintf も、POSIX qw(floor) も、「0.5 足せ!」も、
浮動小数点の丸め誤差を理解出来てない奴が、
適当に解説するのは止めてくれ!と心底思うが

584に言われたくは無いだろーなあ。
0587nobodyさん2010/10/19(火) 22:56:38ID:???
みなさん、モジュールについてはどう学習していますか?
書店で関係書籍を見る限り、モジュールについて詳しく書かれている書籍はほとんど無いと思うんですが。
やっぱりCPANを直接読むんですか?英語だと思うんですが・・
0588nobodyさん2010/10/19(火) 22:58:42ID:???
>>581
いやあ、私は時々使いますよ。
運営側としては名前もメール欄も使うべきものなんだと思ってます。
多くの人が使わないようだけど、本来は使ってしかるべき機能かと。

名前も連絡先も明らかにせずにいきなり話に入るなんていうのがリアルで当然にはなって欲しくないです。
0589nobodyさん2010/10/19(火) 23:04:52ID:???
>>587
山程ある
0590nobodyさん2010/10/19(火) 23:10:44ID:???
>>589
モジュールに詳しい書籍はほとんど無いかと。
載っているものはあるにはあるけど。
0591nobodyさん2010/10/19(火) 23:11:55ID:???
そんなに難しい英語でもないだろう…
あとはperldoc.jp
0592nobodyさん2010/10/19(火) 23:12:03ID:???
>>590
いや、だから山程あるっつーに。
0593nobodyさん2010/10/19(火) 23:12:07ID:???
>>587
英語ぐらい読めよ。技術文書はそんなに難しくないぞ。特にコンピュータ系の
専門用語は英語そのままカタカナにしたのが多いから楽だよ。
0594nobodyさん2010/10/19(火) 23:14:58ID:???
今、モジュールについて学んでいるんですが、
何か良い書籍はありませんか?
知りたいのは主に以下のもの

CGI
LWP::UserAgent
HTTP::Request
Jcode
XML::DOM
XML::Parser

0595nobodyさん2010/10/19(火) 23:19:46ID:???
全部ネットで情報が得れる
0596nobodyさん2010/10/19(火) 23:20:48ID:???
>>587-595
>>1
【Perl,CGI】参考書籍 第四版
http://hibari.2ch.net/test/read.cgi/php/1250989562/
参考書籍推薦スレッド
http://hibari.2ch.net/test/read.cgi/php/1014836425/
【総合】 Webprog板質問雑談スレッド 1
http://hibari.2ch.net/test/read.cgi/php/1131016915/
0597nobodyさん2010/10/19(火) 23:31:32ID:???
あれ、以前、検索エンジンからの検索語を取り出す話をした時に、
エンジンによって振り分けて処理するしかないって結論になってなかったっけ?
Jcodeモジュールでできるのでは?
0598Perl忍者 ◆M5ZWRnXOj6 2010/10/19(火) 23:36:59ID:I4QlovXi
検索力がない奴はモジュール使えない
0599nobodyさん2010/10/19(火) 23:40:37ID:???
あららw Jcodeモジュールで文字化けもあった検索語の抽出が一気に直ってしまったw
これって検索エンジン毎に分岐しなくてもいいんじゃないかな?
以前、質問したら自信満々に 「エンジン毎に分けるしかないでしょうね」 とか言われたけど、
そんなことないじゃないか。
0600nobodyさん2010/10/20(水) 00:01:49ID:???
スゴイw
何行にも渡って処理していた日本語変換が2行ほどになってしまったw
モジュールスゴイね。(;´∀`)
0601nobodyさん2010/10/20(水) 01:36:24ID:???
今時Jcode.pmかよwって思ったけどなんでEncode.pmが使われるようになったの?
日本語の変換するならJcode.pmで十分実用に足るんじゃないの?
0602nobodyさん2010/10/20(水) 02:33:30ID:???
え、今時って、Jcodeよりもっといいものがあるってこと?
充分に単純化できてるし、効果も得てるんでこれでいいと思ってる。
2行を1行に出来たところでさしたる差はないから。

Encodeは正直まだどういうものなのかわかってない。
文字コード変換と日本語変換の違いなのかな?って想像してる。
0603nobodyさん2010/10/20(水) 02:58:27ID:???
Perlが5.8.1以降の場合、JcodeはEncodeのラッパーとして振る舞います。
0604nobodyさん2010/10/20(水) 05:24:47ID:???
>>602
初心者だったらJcode.pm使うよりは素直にEncode使ったほうがいいような気も。
Jcode.pmを使ってるサンプルスクリプトは、
pre-modernで参考にしない方がいいものも結構あるし。
0605nobodyさん2010/10/20(水) 07:06:43ID:???
Encodeは文字列をバイトストリームでなく文字(Unicode)として認識させたいときに使うのかな?

$string =~ tr/一二三/壱弐参/;
0606nobodyさん2010/10/20(水) 08:28:58ID:???
それはuse utf8の仕事ではなかろうか
0607nobodyさん2010/10/20(水) 11:33:27ID:???
ちなみに、Jcodeを使っているのは自作のアクセス解析
これまではjcode.plやutftosjisとかを検索エンジン毎に分岐し、更にキーワードが入ったパラメーター名毎に分岐して入手していました。
モジュールJcodeを使ったら何十行にも渡っていたものが短い2行に。
モジュールの威力を知った。
0608nobodyさん2010/10/21(木) 02:33:10ID:???
Emacs使ってる人いる?
すごい高機能なんだって?本で知って興味持ってる。
昨日話したJcode、その後も順調に機能してるよ。以前はどうしても文字化け出てきちゃうのもあったんだけど、
いまやほとんど無し。

ありがたやありがたや。
0609Perl忍者 ◆M5ZWRnXOj6 2010/10/21(木) 07:33:22ID:im6AkfLS
得意気にEmacs使いほざいてても
成果物がクソとかプログラミングもクソなやついるから

あーあーあのubuntu厨見たいなかんじですね(笑)
0610nobodyさん2010/10/22(金) 11:45:08ID:???
そっか
Emacsと言っただけで ほざいてる とか言われるわけか、参ったな。
話に聞いただけでまだこれから試すか否かなんだけどね。
体験者がいたら話聞いてみたいなと。
0611Perl忍者 ◆M5ZWRnXOj6 2010/10/22(金) 16:50:09ID:1atSZw6K
Emacs興味もってるから死ねよ
0612Perl忍者 ◆M5ZWRnXOj6 2010/10/22(金) 16:54:37ID:1atSZw6K
ごめん
0613nobodyさん2010/10/22(金) 18:49:56ID:???
講義で課題が出たのですがわからないので質問していいですか?
よろしければ問題文を張るので協力御願いします。
あと、もし他に相応のスレがあるなら誘導御願いします。

0614nobodyさん2010/10/22(金) 18:54:45ID:???
宿題は自分でやれ
0615nobodyさん2010/10/22(金) 20:01:30ID:???
相応のスレぐらい自分で探せ
0616nobodyさん2010/10/23(土) 02:05:49ID:???
Perlの宿題スレってなくね?
貼ってくれたら俺はやるよ。
なんか宿題とかそういう下らないことしたい気分だし。
0617nobodyさん2010/10/23(土) 07:53:35ID:???
俺もニートだから宿題やるよ
0618nobodyさん2010/10/23(土) 09:58:15ID:???
凝った使い方せずとも、そろそろ db ぐらいは使えたほうがいいのかな?と思い始めた。

MySQL とか PostgreSQL とかのセットアップがめんどくせーw

もっと、ちゃちゃっとセットアップできるの無いのかしら?
0619nobodyさん2010/10/23(土) 10:00:59ID:???
sqlite?
0620nobodyさん2010/10/23(土) 12:42:59ID:???
>>616-617
いろんな言語で宿題 第五編
http://hibari.2ch.net/test/read.cgi/tech/1276873238/
0621nobodyさん2010/10/23(土) 13:52:50ID:???
>>618
慣れの問題だからがんがれ
0622nobodyさん2010/10/23(土) 14:35:31ID:???
>>618
俺もそう思って2年前にDBの勉強をしたけど、結局使うことなく今はさっぱり忘れてしまったw
0623Perl忍者 ◆M5ZWRnXOj6 2010/10/23(土) 16:46:29ID:21A5e235
DBすら使えないとかごみ
0624nobodyさん2010/10/23(土) 17:52:56ID:???
なんだかんだでDB使ってるなあ
自前でデータ保存読み込みのコードを書くより楽だから
0625nobodyさん2010/10/23(土) 19:48:57ID:???
テキストファイルはシステムもクソもないから、ファイルが生きてれば運用可能。
DB はシステムが逝くと使い物にならない。
こうゆう部分で二の足踏んでる。
0626nobodyさん2010/10/23(土) 20:01:46ID:???
DBを使わなくて、トランザクションを保証するシステムできるのか?
0627nobodyさん2010/10/23(土) 20:52:18ID:???
そこまでクリティカルなの作らないし・・・
0628nobodyさん2010/10/23(土) 22:49:15ID:???
webアプリなら用途にもよるがKVSでもいけるな
0629nobodyさん2010/10/23(土) 23:32:08ID:???
>>616 617
ありがとうございます。本当にわからなくて困っていたのでお願いします。

問題:関数のfactorial、area_circle、wrapitを使って出力が得られるよう
主モジュールを作成せよ。(関数と一体になった完全なプログラム)
(テキストp03176.plの青春の詩YOUTHを用いる)
0630nobodyさん2010/10/23(土) 23:33:10ID:???
下記p03176.pl
#getsrc x 176
use strict;
my %count;
my $size = 4; # カウントする単語の最小サイズ
while( <DATA> )
{
my @words = split;
foreach my $word ( @words )
{
next if length($word) < $size;
$count{$word}++ if $word =~ m/^[a-zA-Z]+([-'][a-zA-Z]+)*$/;
}
}
my $uniq_words = keys %count;
unless ($uniq_words)
{
print "ファイルには単語がありません。\n";
exit;
}
my $total_count = 0;
my $total_length = 0;
foreach my $word ( keys %count )
{
$total_count += $count{$word};
$total_length += length($word);
}
my $avg_length = $total_length/$total_count;
print <<STATUS;
$size文字以上の長さの単語の出現状況
------------------------------------------
0631nobodyさん2010/10/23(土) 23:34:34ID:???
総単語数 = $total_count
単語の種類 = $uniq_words
平均の単語長 = $avg_length
STATUS
__DATA__
YOUTH
Youth is not a time of life - it is a state of mind, it is
a temper of the will, a quality of imagination, a vigor of
the emotions, a predominance of courage over timidity, of
the appetite for adventure over love of ease.
Nobody grows old only by merely living number of years;
people grow old only by deserting their ideals.
You are as young as your faith, as old as doubt; as young
as your selfconfidence, as old as your fear; as young as your
hope, as old as your despair.
0632nobodyさん2010/10/23(土) 23:46:36ID:???
>>620で誘導されてんだからそっちでやれや。
0633nobodyさん2010/10/25(月) 20:02:17ID:???
>>629-631
検索エンジンも使えないの?
その問題は具体的にfactorial、area_circle、wrapitがどういうルーチンなのかわからないと解けないんだよ。
factorial、area_circle、wrapitがどういうルーチンかはわかっているんでしょ?
だったらそれを書いた後に、名前から勝手に想像するが、
print factorial(5);
とかやってみればいいじゃない。
0634nobodyさん2010/10/26(火) 23:13:25ID:???
SJIS + ActivePerl5.12 x64 + WinSrv2008の環境でCOMを使ったエクセル出力が上手くいきません

$filepath = "c:/folder";
$filename = "excelfile";
$xlspath = "${filepath}/${filename}.xls";
略
print $xlspath;
$wb->SaveAs($xlspath);

printの時点ではちゃんと拡張子も含まれた完全なパスなのですが
OLE32 LastErrorを取ってやるとSaveAsのところでC:\//folder/excelfile というパスが見つからないというエラーが出ているようです
SaveAsの引数に直接ファイル名まで入れた絶対パスのリテラルを書くとちゃんとxlsファイルが出力されるので単に渡される文字列が正しくないことが原因だと思うのですが・・・
どのように修正すればよいのかご教授ください、よろしくお願いします
0635nobodyさん2010/10/28(木) 22:26:44ID:???
my $in = new CGI;
my $param = $in->param('abc');

abc が渡されてなければ、param の結果は undef でいいんですよね?
0636Perl忍者 ◆M5ZWRnXOj6 2010/10/28(木) 22:28:11ID:oSh7LqBC
しってるのにきくんじゃねえよ

老人? 確認するための老人?
0637nobodyさん2010/11/04(木) 14:47:19ID:8SyFnlua
teigi.txt-------------------------------------------------------------
hoehoeとは,[ 1 ]上の[ 2 ]の[ 3 ]となることができる[ 4 ]をいう。
hoehoeは,[ 5 ]時に取得する。
hoehoe,[ 6 ]よって[ 7 ]する。
-----------------------------------------------------------------

ここから[]に含まれた1から7までの数字を全部抽出したくて、
open( DATA, "C:\teigi.txt" );
while(<DATA>){
if(/\[\s(\d+?)\s\]/g){
print "$1\n";
}
}
とやってみたのですが、
1
5
6
のように各行で最初にマッチした数字しか取り出せません。
どのように修正したらいいか教えてください。お願いします。
0638nobodyさん2010/11/04(木) 15:01:07ID:???
if->while
06396372010/11/04(木) 15:13:27ID:???
>>638さん

できました!ありがとうございます。
0640nobodyさん2010/11/04(木) 15:13:30ID:???
open(IN, '<', 'teigi.txt');
my $text;
read(IN, $text, (-s IN));
close(IN);

my @data = $text =~ /\[ (\d+?) \]/gs;

print join("\n", @data);

exit;

06416372010/11/04(木) 15:19:36ID:???
>>640さんが示してくださった方法でもいけました!

ありがとうございます。
0642nobodyさん2010/11/05(金) 21:30:27ID:???
iniファイルを読み書きするConfig::Simple;を使っていて、質問があります。
$cfg->param(-block=>'hoge', -values=>{'time'=>time()});
とするとブロックを追加でき、
$cfg->param(-block=>'hogel');
でブロックにアクセスできます。
が、
$cfg->delete(-block=>'mysql');
としてもブロックを削除できません。
ブロックごと削除するにはどう記述したらよいですか?
0643nobodyさん2010/11/06(土) 10:03:24ID:???
ini ファイルの場合、ブロックを削除する方法はない。
delete メソッドを拡張するといいよ。
0644nobodyさん2010/11/06(土) 10:05:34ID:???
private なデータにアクセスするので紳士協定に反するが、

delete $cfg->{_DATA}->{mysql};

とやれば消えるか。
0645nobodyさん2010/11/08(月) 00:17:08ID:???
Perlでlz形式(Compress.exe)で圧縮されたファイルの解凍をやろうと思っているのですが・・・
あまりにもマイナーな形式のため、標準のモジュールでは対応してないみたいです。

ただAPIを使用すれば解凍できそうなので、下記のURL(C言語?)を参考にPerlでAPIを組むことにしました。
ttp://tokovalue.web.infoseek.co.jp/LZOpenFile_U.htm


----------------------------------------------------------------------------------------

use Win32::API;
my $kaitou = new Win32::API("lz32", "LZOpenFile", ["P,P,N"], "N")

----------------------------------------------------------------------------------------


しかしAPIの宣言はできたのですが、下記の構造体の部分をPerlで書く方法がわかりません…

Type OFSTRUCT
cBytes As byte
fFixedDisk As byte
nErrCode As Integer
Reserved1 As Integer
Reserved2 As Integer
szPathName As String * 128
End Type


調べたらpack、unpackを使えば構造体を使用できるらしいのですが、例等がないため見当もつかないです。
もしどなたか分かる方がいれば教えて頂いてもよろしいでしょうか?

お願い致します。
0646nobodyさん2010/11/08(月) 06:45:59ID:???
>>645
使い方も使用例もマニュアルに書いてあるから読めよ
0647nobodyさん2010/11/08(月) 18:53:06ID:u2tFSMiG
半角全角 変換で調べてみると以下のような選択肢が見つかったのですが、

 Encode::JP::H2Z
 Lingua::JA::Regular::Unicode
 Unicode::Japanese

何が主流なんでしょうか?

CentOS5.5 perl v5.8.8
0648nobodyさん2010/11/09(火) 04:15:52ID:???
動くの使ったら良い
微妙に機能が違った気がするけど覚えてない
俺はLingua::~~
を使ってる
0649nobodyさん2010/11/10(水) 16:07:10ID:???
入力フォームのHTMLファイルと、入力を処理するCGIファイルの2個をを同じCGIファイル一個に纏めたい。

具体的にはクエリが空っぽなら入力フォームを表示。
表示した入力フォームから入力があればクエリのデータを読み取って出力をするプログラムが走るようにしたい。
空を判定するのにunless( !defined( $a )こうやって見たけどどうやら空でも0でもない何かが入ってるらしくバグる。
0650nobodyさん2010/11/10(水) 16:11:20ID:???
何かがとかいってないで表示させてみればいいじゃない。
0651nobodyさん2010/11/10(水) 16:19:32ID:???
perlfunc defined
0652nobodyさん2010/11/10(水) 16:39:06ID:???
>>650 ありがとうございますほぼ解決しました。
フォームを強制的に表示して次に空で送信すると以下のようにURLに何かくっ付きます
ttp://xxxxxx.jp/idsaves.cgi?t1=&t2=&t3=&t4=
このときは値は空のようです

フォームを表示せずに普通にCGIを呼び出したアドレスはこれです。
ttp://xxxxxx.jp/idsaves.cgi?
このときの値は0のようです

0でもない空でもない幻はこの2パターンに対したまたま組んだプログラムが上の時は0を想定して
下のときは空を想定したプログラムでたまたまテストして両方エラーだった為0でも空白でもないと思い込んだようです。
0653nobodyさん2010/11/10(水) 17:04:29ID:???
>>649

$a $bは使うなとなんべん言ったら…

それと今回はそれ以前の話だったようだけど、
本来空文字かどうか判断するなら ne を使うべきで defined は使うべきでない

# 文字があるとき true を表示したい
$str = '';
defined $str ? print "true\n" : print "false\n"; #=> true
$str ne '' ? print "true\n" : print "false\n"; #=> false
0654nobodyさん2010/11/10(水) 19:03:35ID:???
>>653
なにかコードがPerlとは違うように見えるのですが。
省略か何かの書き方の違いですか?

それとどこかで拾ってきたサンプルソースがdefinedではなく!definedなってて
それでバグったみたいです!definedは単なるミス表記なのか何か意味があるのか教えてください。
■ このスレッドは過去ログ倉庫に格納されています