【Perl 】初心者コーナーPart6
■ このスレッドは過去ログ倉庫に格納されています
0001undefさん
2001/07/26(木) 00:40ID:???尋ねる前に同じ質問がないかこのスレや旧スレ、及び>>2のリンクを一通り見てみよう。
案外答えはもう書かれているかもしれない。
0601名無しさん@お腹いっぱい。
2001/08/23(木) 15:58ID:???$value = $value+0;
0603596
2001/08/23(木) 16:04ID:5IP6et1kそんなこともできるんですね!確かになります。
これは演算することで文字列から数値にキャストされる
ようなことと考えていいんでしょうか?
0604名無しさん@お腹いっぱい。
2001/08/23(木) 16:16ID:???そうです。
演算することで、パールのほうで、数値型にかえてくれます。
ただ、暗示的やりかたは、横にコメントも入れたほうがいいような気がする。
0605596
2001/08/23(木) 16:28ID:5IP6et1kなるほど、勉強になりました。エレガントさでいくと
602さんのが簡潔ですね。コメントも入れるようにします。
どうもありがとうございました。
0606名無しさん@お腹いっぱい。
2001/08/23(木) 17:27ID:???open (IN,"$logfile");
while (<IN>) {
}
じゃない?
0607名無しさん@お腹いっぱい。
2001/08/23(木) 17:29ID:???何故かウチのローカル環境だとエラー出るから一々
$v =~ s/^(0*)//;
とか括弧付けてるよ…
0608名無しさん@お腹いっぱい。
2001/08/23(木) 17:40ID:???いろんな解説書によるとパッケージ名::関数 で呼ぶようになってますよね
でも公開されてるスクリプトなどが&jcode'convertみたいにそのまま関数名で
呼んでるのは何故ですか?
0609572
2001/08/23(木) 17:42ID:???>>579
ありがとうございます!
な、なんか難しそうですね…。
方法としては、
・SJIS以外受け付けないようにする
・SJIS(EUC-JP)にコンバートする
・ログでコードを一つに統一する
のどれかということでしょうか?
頑張ってみます。
0610奈々資産
2001/08/23(木) 17:58ID:h9wrQ49Q&jcode'convertなどは普通のサブルーチンとして呼び出しているからです。
パッケージ名::関数の方はその"パッケージ名::関数"クラスの
インスタンスを生成して、生成されたオブジェクトに属するメンバ
関数(メソッド)として呼び出すからです。
0611名無しさん@お腹いっぱい。
2001/08/23(木) 18:05ID:???オイオイそれは違うゾ。
どっちもただの関数呼び出しだよ。まったく一緒。
ただPerl4のパッケージデリミタがシングルクォートなだけ。
0612名無しさん@お腹いっぱい。
2001/08/23(木) 18:12ID:pz5WVy56ありがとうございます
でも普通のサブルーチンとして呼ぶ方法と
パッケージの関数として呼ぶ方法の違いはなんでしょう?
test.pl 内に
package test;
sub test1{〜略〜}
return 1;
としてて呼ぶほうのスクリプトで
$test = 'test.pl';
require $test;
test::test1($a);
というようなことをしててもエラーがでて困ってます
0613612
2001/08/23(木) 18:17ID:???0614名無しさん@お腹いっぱい。
2001/08/23(木) 18:18ID:???それで問題ないはずだけど。
perlのバージョンは?
0615名無しさん@お腹いっぱい。
2001/08/23(木) 18:20ID:h08Ccr32として呼び出す方法として説明したんじゃないんだろうか。
0616612
2001/08/23(木) 18:26ID:???5です
jcodeやmimewなどはそのまま関数名で呼んでるんですよね(他の人が配付してるのを見ると)
で、612の方法でやってみても&で呼んでみてもエラーなんですよね・・・
関数自体は今まで同じファイル内にあったもので問題なく動いてたんですけど
もう少しいろいろ試してみます
0617611
2001/08/23(木) 18:34ID:???どう贔屓目にみてもそうは取れないでしょ。
オブジェクトメソッドなら、
convert jcode () か、 jcode->convert()
だけど、jcode.pl はオブジェクト指向じゃないしね。
単に、関数呼び出しとメソッド呼び出しの区別がついてないだけと思う。
>>616
エラーがなくなるまでスクリプト削ってみれ。
とりあえずこれでもエラー出るの?
#test.pl
package test;
sub test1{ print 'This is test::test1()';}
1;
#main.pl
require 'test.pl';
test::test1();
_END__
0618612
2001/08/23(木) 18:37ID:???パッケージ名とファイル名は同じでないといけなかったですか?
同じにしたら::で呼ぶ方法で動きました 御迷惑かけました
(でも&関数名で呼んでる奴との違いがなんなのかさっぱりです)
0619612
2001/08/23(木) 18:46ID:???私のパッケージは単純に関数が一つあるだけです
jcode.plの関数のように&で呼ぶには何か他に必要なのでしょうか?
(エラーの原因はパッケージ名が部分的に大文字でファイル名が
全部小文字というのが原因だったようです お手数かけました)
0620611
2001/08/23(木) 18:52ID:???> パッケージ名とファイル名は同じでないといけなかったですか?
それも関係ない。たぶんどこかに間違いがあったはず。
ファイル名::関数名()とかにしちゃってたんでは?
>(でも&関数名で呼んでる奴との違いがなんなのかさっぱりです)
&test::test1(); でもOKだよ。
&test'test1(); でもまったく一緒。
直後に( があって、その関数名がすでに宣言されていると
perlが関数呼び出しと判断してくれるだけ。
& の有無と、 :: と ' の話は関係ないよ。
0621612
2001/08/23(木) 19:00ID:???何度もありがとうございます
昔とほほで拾ったものなんですけど
mimew.plにあるmimeencodeって関数を&mimeencodeだけで読んでるんですよね
'も::も無しで
これが何故可能なのかがきになって・・・
0622611
2001/08/23(木) 19:06ID:???あ、そういうことですか。
これはmimew.plの関数宣言が、
sub main'mimeencode {
とかになってて、mainパッケージの関数を宣言してるから。
Perl5なら、
sub main::mimeencode {
とか書く。
0623名無しさん@お腹いっぱい。
2001/08/23(木) 19:08ID:???0625名無しさん@お腹いっぱい。
2001/08/23(木) 19:11ID:???0626名無しさん@お腹いっぱい。
2001/08/23(木) 19:41ID:???0627名無しさん@お腹いっぱい。
2001/08/24(金) 01:19ID:???my $value = 0001;
$value = abs($value);
print $value;
これでどうよ?
0628名無しさん@お腹いっぱい。
2001/08/24(金) 01:46ID:???sift-jisに変換してブラウザに出力してますがこの部分だけ化けます
0629名無しさん@お腹いっぱい。
2001/08/24(金) 01:53ID:???表示→表\示
0630名無しさん@お腹いっぱい。
2001/08/24(金) 02:59ID:???sprintf
0631名無しさん@お腹いっぱい。
2001/08/24(金) 03:02ID:???以外でブラウザを識別する方法ありますか?
0632名無しさん@お腹いっぱい。
2001/08/24(金) 03:04ID:???627のほうが効率よいうえ速いと思われ
0633名無しさん@お腹いっぱい。
2001/08/24(金) 03:05ID:???何故そのような事をお望みで?
それがわからないと答えにくいっす
0634名無しさん@お腹いっぱい。
2001/08/24(金) 03:13ID:???ええとですね
正確に言うとブラウザ名とOS名を別々に取得したいんです
HTTP-User-AgentだとOS名とかもくっついて来ますよね
このテキストが規則性があれば抽出できるんですけど、俺の頭じゃなんか無理で、、、
何故そんなことをしたいかというと
ブラウザやOSごとに吐き出すHTMLを微妙に代えたかったんです
0635名無しさん@お腹いっぱい。
2001/08/24(金) 03:18ID:???何故微妙に変えたいかというとINPUT TYPE="text"などのサイズが
同じ数字でもブラウザによりばらばらですよね
で、最初はブラウザだけ解れば何とかなると思ったですけど
Macのブラウザで見ると更にサイズが変わるらしく、OSも
と思ったわけです
0637すたいるしーとと言えば
2001/08/24(金) 03:29ID:???0638名無しさん@お腹いっぱい。
2001/08/24(金) 03:31ID:???結構ユーザーいるんだよな
6は評判悪くて乗りかえてない見たいだし
0639名無しさん@お腹いっぱい。
2001/08/24(金) 03:40ID:???Mozilla/4.7 [ja] (Win98; I)
Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)
Mozilla/4.01a [ja] (Macintosh; I; PPC)
Mozilla/4.0 (compatible; MSIE 5.0; Mac_PowerPC)
以外にも組み合わせによりたくさんあるけど
win Macって言う文字列が含まれてるかどうかチェックすれば
OSは判別できるかな?
0640名無しさん@お腹いっぱい。
2001/08/24(金) 03:42ID:???対応はしてますが何か?
0641名無しさん@お腹いっぱい。
2001/08/24(金) 03:44ID:???0642名無しさん@お腹いっぱい。
2001/08/24(金) 03:46ID:???0643名無しさん@お腹いっぱい。
2001/08/24(金) 04:02ID:h7Yg7pIw0644名無しさん@お腹いっぱい。
2001/08/24(金) 04:19ID:???>>643
print sort keys %ENV
0645名無しさん@お腹いっぱい。
2001/08/24(金) 04:24ID:???0646名無しさん@お腹いっぱい。
2001/08/24(金) 04:25ID:???根本的に話題がずれてます。
0647名無しさん@お腹いっぱい。
2001/08/24(金) 04:35ID:???WEB制作板
http://natto.2ch.net/hp/index2.html
0648名無しさん@お腹いっぱい。
2001/08/24(金) 06:09ID:???やはりCGIとPerlの区別がつかないドキュソが多いのか
0649名無しさん@お腹いっぱい。
2001/08/24(金) 07:15ID:???0650名無しさん@お腹いっぱい。
2001/08/24(金) 15:21ID:???夏になると暑さで頭やられた馬鹿が出てくるし
秋になると食欲の秋で腹壊す馬鹿が出てくるし
冬になると脳みそ凍りついてる馬鹿が出てくる
年がら年中馬鹿ばっかだね。
0651307
2001/08/24(金) 16:09ID:???再利用出来るんだけどねー、
ここは流れゆっくりそうだから、DAT落ちしてないし
ちょっと見たけど、上の方のHTTPDのとか最悪じゃん :-D
0652名無しさん@お腹いっぱい。
2001/08/24(金) 16:10ID:???0653名無しさん
2001/08/24(金) 16:18ID:???ローカルプロクシがport80でlistenしてたってオチか?
もうcgiでも無いし
0654名無しさん@お腹いっぱい。
2001/08/24(金) 17:29ID:???0655名無しさん@お腹いっぱい。
2001/08/24(金) 17:32ID:???いいけど、スレ違い。
0656540
2001/08/24(金) 17:46ID:???ザクソンネットレコーダーアンインストール終了して
幾つかの調整してIEがやっと復旧しました、その
>C:\www にインストールしているとして、オプションのドキュメントルートは C:\www 。
>これは何も変えてなければデフォルトで大丈夫だ。
>次に、
>オプション/一般 → バーチャルホスト → バーチャルホストを使う、
>オプション/一般 → 一般 → HTTPサーバ機能、
>オプション/一般 → 一般 → バーチャルホスト、
>これらにチェックを入れる。
はやってます、でもやはり404でした。。今日思ったのですが
インターネットwebマネージャがIISの機能を満足していない
からではないんでしょうか?
やっぱネット初級あたりに質問したほうがいいですか?
0657名無しさん@お腹いっぱい。
2001/08/24(金) 18:09ID:???IIS??AN入れてるんじゃ無いの?
404って事はserverは見えてるの?
エラーコード位勉強してくれないかな
あきらめた良いと思いますよ。
0658名無しさん@お腹いっぱい。
2001/08/24(金) 18:17ID:???「ホームページが動きません!!助けて!!!!!!」
と言うスレを立てて下さい、すると当然ボコボコに叩かれるますので
そしたら部屋の窓を一杯に開けて「アチョーーー!!」と叫びながら
パソコンを外に投げて下さい。
ちょっと難しいけど、、、、がんばって!!
0659653
2001/08/24(金) 18:23ID:???だからオメエOSは何だっつってんだよ 厨房の癖にNTなんか使うな
どうせPORT80なんかに使われてんだろ それは404って言わねえんだよ
ポートとか書いてる所に10000って入れて
http://127.0.0.1:10000/
につなげ 繋いだらそのまま師ね
0660初心者A
2001/08/24(金) 18:26ID:???0661名無しさん@お腹いっぱい。
2001/08/24(金) 18:34ID:???>やっぱネット初級あたりに質問したほうがいいですか?
取り合えずここは出て行った方がいいと思われ。。。。
0662名無しさん@お腹いっぱい。
2001/08/24(金) 18:51ID:???状況がわからないのに正確な答えが出てくると思うか?
もし、こんな情報は必要無いな、とか思って情報を出さないのであればそれは間違いだ。
何もわからないテメェが必要な情報と不必要な情報を分別できると言うのか?
0663名無しさん@お腹いっぱい。
2001/08/24(金) 18:59ID:???同じ質問の仕方じゃどの ML でも掲示板でも荒れるよ
君には技術の前に正しい質問の仕方と論理的な物事の説明の仕方を
学ぶことをお勧めする
0664540
2001/08/24(金) 18:59ID:???別に切れたりはしませんが、多分だれも分らないんだと思う。
でもパソコンは会社のLan環境で使っていたやつなので
設定が普通と違うせいかもしれません。
0665名無しさん@お腹いっぱい。
2001/08/24(金) 19:09ID:???聞き方って一体・・・・・
ログ読むと何人かは真面目に答えようとしていた筈だが
0666540
2001/08/24(金) 19:21ID:???思うのですが。。
0668名無しさん@お腹いっぱい。
2001/08/24(金) 19:24ID:???0669540
2001/08/24(金) 19:24ID:???と何度も言ってるから違うのでしょうが。
0670名無しさん@お腹いっぱい。
2001/08/24(金) 19:27ID:???0671540
2001/08/24(金) 19:36ID:???lan環境の事だとすれば
必要な情報と不必要な情報を選別する事は
出来ないし何がlanかもわからないので
恐ろしく不必要な情報ばかりになるでしょう。。
ただ通常ある程度のレベルべ起こる不具合であれば
普通の人にも説明できると思ったからこのように
訊いたのです、でも現在自分のpcはおよそ想像出切る範囲の
通常設定とはかけ離れているので説明のしようがにないのだと
思います。
それは専門家の想像にもかけ離れているので
私はこれを正業としていないので、何を記述してよいか分りません。
0672名無しさん@お腹いっぱい。
2001/08/24(金) 19:45ID:???すげぇ、こいつは大物だ。
初級ネットより電波板のほうがよくないか?
おそらくあなたは気づいてないかもしれませんが、
あなたは質問の仕方が恐ろしいほど下手で誰も理解できません。
日本語勉強しなおすか、OS再インストールしてもう一度試すか、
回線切って首吊ってください。
0674名無しさん@お腹いっぱい。
2001/08/24(金) 19:48ID:???0675名無しさん@お腹いっぱい。
2001/08/24(金) 19:53ID:???ネットワークについて、基礎的な知識をもって欲しい。
何も難しい事を言ってるんじゃ無くて、http〜〜〜 と
ブラウザに入力したアドレスの内容が何故表示出来るのかと言う事です。
pingやport,listenをキーワードに検索すればある程度
導通検査の仕方が出てくるからその辺りから見ていけば時間は掛からない。
それと、
>多分だれも分らないんだと思う。
こんな事を言ってるけど、それは違う。
貴方が自分なりに試行錯誤した結果をここに書き込まないから
誰も答える事が出来ないんだ。
具体的に言うと、エラーメッセージ、ブラウザに〜〜〜と書かれています
とか、4**、5**といったエラーが出ていますとか。
それを前の方の人も何度も聞いているね。
貴方はそれに答えずに、自分なりに考えた事だけを一方的に書き込んでいる
だけだから、両者の間にコミュニュケーションは存在していないんです。
つまり、今までだらだらと続けて来た事は、たった一人でトラブルシューティング
してるのと何ら変わらない結果しかもたらしていないと言う事です。
アプローチは沢山あるんだから、あせらず廻り道するのも手ですよ。
0676名無しさん@お腹いっぱい。
2001/08/24(金) 19:55ID:???あんたやさしいな
0677名無しさん@お腹いっぱい。
2001/08/24(金) 20:08ID:???質問する時は環境とエラーメッセージ位は書くようにしような。
それと回答者が聞いてる事に答える事。
そうすれば再利用する事も出来る訳だし。
問題解決までのプロセスが明確なら、ちょっとしたFAQサイト位の情報量
は十分有ると思う。 という訳で、、
============ 質問 再開 =============
0679名無しさん@お腹いっぱい。
2001/08/24(金) 21:00ID:???という記事を書くための取材をしていると推測してみる。
0680名無しさん@お腹いっぱい。
2001/08/24(金) 21:04ID:???良い感してる
0681名無しさん@お腹いっぱい。
2001/08/24(金) 23:55ID:???漏れもきぼん
ログ流して〜
0682名無しさん@お腹いっぱい。
2001/08/25(土) 00:11ID:???毎行 # を付けるのが面倒で…
0683名無しさん@お腹いっぱい。
2001/08/25(土) 00:13ID:???[^\.-z]
これの意味がいまいちわからないのですが...
0684NeTa
2001/08/25(土) 00:55ID:???sub comment{ undef }
comment <<EOD;
foo
bar
hoge
EOD
ってのはどうでしょ
0686名無しさん@お腹いっぱい。
2001/08/25(土) 00:57ID:???>>682
こんな感じでいけるよ
でも実はこれではオプティマイザにとって
完全に無視される存在にはならないらしい(過去ログ参照)
komentoは何でも良いです
=cut
0687名無しさん@お腹いっぱい。
2001/08/25(土) 01:06ID:???http://www.e-words.ne.jp/page.asp?p=r-ascii
この辺を見ながら
$a = '-+.aA@()*abdc';
$a =~ s/[^\.-z]//g;
print "$a";
こんな感じでやってみると解りやすいかもしれない
0688名無しさん@お腹いっぱい。
2001/08/25(土) 01:16ID:???レスありがとうございます.
[^\.-z]で対象となるのは、
0x20 から 0x2d と 0x7b から 0x7e ですか?
(夕方実際にやってみてそういった感じでした)
どの文字が実際にマッチするかは
実際に実験してみればわかるのですが...
0689名無しさん@お腹いっぱい。
2001/08/25(土) 01:32ID:???そそ、でも正確には制御文字(CRやLF)も含めてだから
[^\.-z]だと改行コードなんかもマッチする(\nとか付けてやってみて)
実験したと言う事はもっと深い所でトラブってるの?
だったら俺はわかんないや :-)
0690名無しさん@お腹いっぱい。
2001/08/25(土) 12:26ID:???っとどうしようもねえ糞餓鬼ばっかだな
0691あげてみる
2001/08/25(土) 14:33ID:fEbHiUCs匿名掲示板で有益な情報を得たぜ日経IT記者よあげ
0692名無しさん@お腹いっぱい。
2001/08/25(土) 18:48ID:???みんな>>674を思ってやってるだけなんだから気にするなよ。
0693名無しさん@お腹いっぱい。
01/08/26 16:41ID:s0cllzR.戻り値とすることはできるのでしょうか?
遅くなると聞いたので、あまりreturnは使いたくないんです・・・。
グローバル変数使うしかないんでしょうか・・・?
0694名無しさん@お腹いっぱい。
01/08/26 19:33ID:deglGRg.りたーんすると遅くなるなんて聞いたことがないが、たぶん関数内ででかい(連想)配列を作って、それを返す時にコピーするのが時間がかかるということかな?
全体的に言ってることがおいらには理解できないが・・・。
一応おいらは呼び出し側で配列作って、関数にはリファレンスで渡してる。
それが有効かどうかは知らない。意味無かったら誰か煽ってくれ。
あと、所詮perlで書くスクリプトなんてたかがしれているから、グローバルでも平気で使ってる(わらぃ
0695名無しさん@お腹いっぱい。
01/08/26 21:24ID:WYakJQegなるほど、returnをすると遅くなるというのはそういうことだったんですね。
デカイ配列は無いので、returnを使うことにしました。
ありがとうございました。
http://www.cec.co.jp/usr/hasegawa/Docs/perl-jman/perl-4.019/perl_30.html#SEC49
0696名無しさん@お腹いっぱい。
01/08/27 10:30ID:5EwuC8Dg例:
require 'jcode.pl';
my $hoge="アホ";
&jcode::sjis2euc(\$hoge);
どうもeucになってないんですわ、、、
0697真夏の名無しさん
01/08/27 11:41ID:3PUeFMAE$a=1; $b=2;
print "一致したよ" if ($a = $b);
# なぜ「一致したよ」とプリントされるのでしょうか?
0698名無しさん@お腹いっぱい。
01/08/27 11:43ID:5CqKaT3I0699名無しさん@お腹いっぱい。
01/08/27 11:47ID:5CqKaT3I何故と聞かれたら、答えになってないか。
$aに$bが代入され、$aの値(2)が評価された結果真になるから。
0701名無しさん@お腹いっぱい。
01/08/27 16:48ID:r2JsPnN.ネタですか?スコープ、局所化、my、localって言葉について
全部調べた後だったら、僕も一緒に考えてもイイ。
■ このスレッドは過去ログ倉庫に格納されています