Perlについての質問箱

このエントリーをはてなブックマークに追加
663デフォルトの名無しさん
Perlで料理のレシピを登録して、料理名や使用材料で検索できるようなものが作りたいです。
テキストの全文検索は自前でやったことあるけど、こーゆーのはSQLとか使ったほうが楽ですよねー?
SQLの構文自体は分かります。ただ、Perlが初めてなだけで(汗)普段はC++。
664デフォルトの名無しさん:02/09/19 17:54
>>663
ヤット,マトモナシツモンガキター!!
665デフォルトの名無しさん:02/09/19 17:57
>>663
実行環境は?
666663:02/09/19 18:02
実行環境はRedHat6とかでしょうか。
Webで公開するためのCGIサーバは後で用意するつもりなので。
今はWinのActivePerでやります。

オススメの環境とかあれば、便乗させてもらいます。
>>663
なにがアンケート調査CGIじゃ
ヴぉけが
Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!
Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!
Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!
Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!
Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!
Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!
Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!Ruby!
>>666
普段c使ってるならcでやんなよ。
>>663の処理ならコーディングの手間を減らせるメリットと
慣れない言語を扱うことのデメリットを天秤にかけりゃ
そのほうがて手っ取り早い。
670デフォルトの名無しさん:02/09/19 18:28
>>669
まあそうだがRedHatなら定番MYSQL+PHPというのもある。
彼のスレを読んでる限りじゃデータベース使うならどうせ覚えることは多いし
参考書籍はこっちのほうが多い。
671663:02/09/19 18:39
>>669
別に、早く仕上げたいという気持ちは無いです。
半分は勉強目的です。

>>670
MYSQLですか・・・。ちょっと調べてみます。
OSに標準で入ってるか、もしくはどこのプロバイダでも
アクセスを許可しているような感じのものであれば使ってみたいです。

672デフォルトの名無しさん:02/09/19 18:46
>>671
レンタル鯖?
海外なら大抵使えるよ。
自宅に置いてWEBサーバのCGIでアクセスってのもある。
>>671
いずれにせよ、板違いだ。
WebProg板へいきな。
674663:02/09/19 19:00
>>672
海外はまったく考えていなかったです。

WEBサーバのCGIでアクセスするのは面白いかもしれませんね。
処理速度が落ちるとは思いますが、今回の規模ならそれでも十分です。

外部のDBと連携するのではなく、Perlプログラム中に組み込むような
形のデータベースエンジンって無いんですかね?
675デフォルトの名無しさん:02/09/19 19:30
半角カタカナが入力されたらエラーがでるような
チェックサブルーチンを作りたいのですが、
jcode.plを使わずにShiftJISのままで
それを作るにはどうしたらよいですか?
お知恵を貸して下さい。
676デフォルトの名無しさん:02/09/19 19:37
文字コード表とか検索してみ。
677672:02/09/19 19:38
>>674
WebProg板の初心者質問スレにレス移動したのでよろしく。
二度と戻ってくるな。
679和尚:02/09/19 20:54
>>675 純粋な質問だが本気でお知恵を借りたいと思っているのか?
思っているなら貸さないでもないのだが。
680675:02/09/19 20:56
>679
思ってない
681675 ◆iuNtvKQI :02/09/19 21:18
>>679
思ってます?。今もまだ出来なくて調べてました。
0x00A0-0x00DFが半角カタカナのコードらしい、まで調べたのですがそれで
チェックしてみると全角カタカナがチェックの対象になってしまって…

>>680
偽者
>>681
半角カナって1バイトじゃなかったっけ ?
683デフォルトの名無しさん:02/09/19 22:01
ばかばっか
>>682
EUCじゃ2バイトだよ
>>684

仕様書は、ちゃんと読めよ。

>>675
> ShiftJISのままで
( ´_ゝ`)フーン
>>677, >>679, >>683, >>684, >>686
これらの発言は、Perlを憎む某によって書き込まれています
気にしないで下さい

プログラム板のRubyスレとPerlスレ見れば分かる
例えば:http://pc3.2ch.net/test/read.cgi/tech/1028906179/206-
688棄教者 ◆KIKYO7cg :02/09/20 08:30
自治厨うざい。
Perl は WebProg へ逝けというのなら、
CGI に使える言語なら Ruby でも C/C++ でも
WebProg に逝かないといけないね。
神とか漢とか言われてる人は CGI を C で書くでしょ。
>>688
DBIの具体的な使い方の話ならともかく、
cgiサーバがどうしたなんて話は完全に板違い。
690デフォルトの名無しさん:02/09/20 09:58
>>688
PerlにCGI以外の*まともな*使い道ってあるの?嘲笑

ないだろ?ばぁぁか
691デフォルトの名無しさん:02/09/20 10:00
>>690

Perlは結構使えますよ。
こないだ生ゴミ燃やすのに使いますた。
692デフォルトの名無しさん:02/09/20 10:06
>>690
おれは688ではないが、ここはプログラム板だから使い道うんぬんの話だけじゃない。
そういう話こそWebProgやプログラマ板でやればよい。
でも、PerlはCGIの実行に使われるのが多いのも確か。
688は質問者のその辺を理解してやれよ。すぐ板違いというのはちょっとイタイ。
693デフォルトの名無しさん:02/09/20 10:08
>>692
688→689スマソ
>>690
2ちゃんのスレッドをGETしてNNTPにPOSTするというデーモンを動かしてます。
>>690

商用Java Servlet engineのResinで、サーバを起動するのに使うな>Perl
http://www.caucho.com/resin/
696棄教者 ◆KIKYO7cg :02/09/20 10:16
TeX2HTML はどの言語で書かれていますか(プ
Ruby で書かれたプログラムがあったら教えてください
気づいているのか知らんが、WebProg板へ行けとかいっているやつは
自治厨でもなんでもなく単なる荒らしだから相手をするな。
しかもジサクジエンしまくりなので注意。
RD >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> perldoc=糞豚
699  :02/09/20 17:15
IO::File("-");
とやると標準入力のファイルハンドルが作られますが、
同じように標準出力、標準エラー出力のファイルハンドルはどう作るんでしょうか?
700_gunzip:02/09/20 17:56
stdout ">-"
stderr ">&STDERR" ないし $io_obj->fdopen(fileno(STDERR), "w") など
701 ◆JAPH9PWA :02/09/20 19:00
STDIN, STDOUT, STDERRはそれぞれIO::Handleオブジェクトとして扱えるから
require/use IO::Handle;でSTDOUT->print(...)というふうにメソッドを呼んだりできるよ。

# 今更気付いたけど、 "-"や">-"はfdの複製はしないんだね。
PerlはUnix系OSでは根幹部分にも多く使われていて、
それ無しではインストールでも苦労すると思うのだが。
703699:02/09/20 20:08
あ、質問がまずかった。ごめんなさい。
やりたいこととしては
STDERR
を読み込んでそれをもとに処理を行いたいのです。
$io_obj->fdopen(fileno(STDERR), "r")
でいいのでしょうか?
704 ◆JAPH9PWA :02/09/20 20:53
なんだ、そういうことか。
それは「標準エラー出力のファイルハンドルを作る」のとは何の関係も無いよ。
読み込みモードでfileno(STDERR)を開いても望みの結果は得られないでしょ。
やってみれば一発で分かると思うけど。

とりあえずそれをするにはIO::Scalarが使える。Perl5.6じゃないと多分失敗するけど。
#!perl
use IO::Scalar;
my $stderrbuff;
tie *STDERR, IO::Scalar => \$stderrbuff;
warn "warn 1";
warn "warn 2";
die "die";
END{ print $stderrbuff; }
__END__

Version500.5以下だとSTDERRを他のファイルにリダイレクトするしかないかも。
705 ◆JAPH9PWA :02/09/20 20:55
Version500.5 -> Version5.005
706デフォルトの名無しさん:02/09/20 23:01
perlってダサイ
またきみか。
俺がお前らのことをどれだけ憎んでいるかお前らには分かるまい
perlユーザは死ねperlユーザは死ねperlユーザは死ねperlユ
ーザは死ねperlユーザは死ねperlユーザは死ねperlユーザは死ねp
erlユ
ーザは死ねperlユーザは死ねperlユーザは死ねperlユーザは死ね
perlユーザは死ねperlユーザは死ねperlユーザは死ねperlユーザは
死ねperlユーザは死ねperlユーザは死ねperlユーザは死ねperlユーザ
は死ねperlユーザは死ねperlユーザは死ねperlユーザは死ねperlユーザ
は死ねperlユーザは死ねperlユーザは死ねperlユーザは死ねperlユーザは
死ねperlユーザは死ねperlユーザは死ねperlユーザは死ねperlユーザは死
ねperlユーザは死ねperlユーザは
死ねperlユーザは死ねperlユーザは死ねperlユーザは
死ねperlユーザは死ねperlユーザは死ねperlユーザは死ねperlユ
ーザは死ねperlユーザは死ねperlユーザは死ねperlユーザは死ねpe
rlユーザは死ねperlユーザは死ねperlユーザは死ねperlユーザは
死ねperlユーザは死ね
709デフォルトの名無しさん:02/09/21 15:39
Ruby >>>>>>>>>>>>>>>>>>>>>> Perl
webprogに引きこもっているなら許してやる。
プログラム板で糞言語の話をするな!
                          /<<Ruby使い
                         /   _
         /◎)、_______∠l /   /◎ヽ
          |  「....;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;| |,,.   ` -_´/
    .彡⌒ー/|  \___;;;;;;;;;;;;;;;;;;;;;;| |;;;;,   "    i ̄ ̄i
      /´⌒ヽ_____\ ̄ ̄ ̄ .|;;;;;;,      /Ruby ゙、
    ,/´    ! ヲ=℃/ ̄      |;;;;;;;;,     /_,-..‐..-、_゙、
   /_レ‐ー――‐" ̄ ̄)         ヾ;;;;;;;;,,,..  /':::::::::::::::::::::`i
  /    __   r'~ ̄            ヾ;;;;;;;;;;;;,,,.トー――――-!
 /       _)               ヾ;;;;;;;;;;;;;;,,,,....
 |     、  ノ                 ヾ;;;;;;;;;;;;;;;;;;;;;;;;;,,,,....
 ゙、;;;,,..    ̄"                   );;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.......
どうして、、、、こんなことを、、
rubyユーザさん、、かわいそうな人。
あなたは人から愛されたことが無いのでしょう。
PerlもRubyも使うが、どうして言語をこんなに憎めるのか理解不能。
RubyユーザのふりをしてPerlをののしり、Rubyユーザの評判を落とそうと仕向けている
粘着基地外がいます。放置をお願いします。騙されたり煽られたりした人がいたら
フォローしてあげてください。
715デフォルトの名無しさん:02/09/22 10:17
perlには言語実装としての美意識が全くありません
書かれたコード!それは世にも醜い姿を晒します
悲劇はperlプログラマはそう思っていない事です
あとインタープリタ方式で遅いのによく使っていられることです
サーバの資源を無駄に使うperlを使うのをやめましょう
せめてJava ServletまたはCが書けるようになってください
ちなみに私は 709 ではありません 706です


「インタープリタ方式」(w

「perlプログラマ」(w

「Java ServletまたはC」(w

突っ込みどころ満載だな。
Perl使いこなしてる奴だってこれが
美しいと思って使ってる奴はいないよ。
>>715-716
> Perl使いこなしてる奴だってこれが
> 美しいと思って使ってる奴はいないよ。

そうか ? C 程度には、きれいに書けるよ。確かに、いくらでもぐちゃ
ぐちゃに書けるけど、それって C でも同じだろ ?
718デフォルトの名無しさん:02/09/22 11:06
そんなあなたにDelphiです!!
どんなヴァカでも同じようにしか書けません

COBOLには負けるけどなー
確かにCだって、ぐちゃぐちゃにかけるんだけど、人によるよね。

仮にCを美しいとしたときに、Perlは言語の仕様自体が美しくないと
俺は思うけどな。
美しくないお陰で使い勝手がいい(ことになっている)というか。
>>715
インタープリタ方式で遅いのに=>rubyはコンパイル言語でしたか。
>>719
使い勝手がいい=>上等。
721デフォルトの名無しさん:02/09/22 11:20
#!/usr/bin/perl

study, write, study,
do review (each word) if time.
close book. sleep? what's that?
722717:02/09/22 11:36
>>719
> 確かにCだって、ぐちゃぐちゃにかけるんだけど、人によるよね。
まあね。どんな言語でもぐちゃぐちゃに書く奴はいるのは確か。

> 仮にCを美しいとしたときに、Perlは言語の仕様自体が美しくないと
> 俺は思うけどな。
ほぼ同意。
> 美しくないお陰で使い勝手がいい(ことになっている)というか。
いいか ? まあ、作者はいいと思ってるんだろうからから問題ないけ
どね。
遅いって言われてもなぁ。
グリグリの3DゲームをPerlで作ってるわけじゃないし、、
普通の人はPerlで十分の内容のときにPerlを使い、スピードがほしい時に
C++使ったり用途に分けて使い分けてると思うが。
お前ら釣られすぎ。
725715:02/09/22 15:10
>>723
俺はcgiもCで書くけどね
最近はApacheで動かすmod_isapi Cで遊んでいるよ
726:名前:デフォルトの名無しさん
>>725
だから?

727 名前:715[] 投稿日:02/09/22
>>726
ネタにマジレスカコイイ(・∀・)イイ!



、、、( ノ ≧∇≦ )ノ  ぷはははっ!
CGIをCで書くことは滅多にないなぁ。
もしもポインタ周りのバグがあると大変だし。

PerlとかphpだのCだのは必要に応じて使い分けないと。
728デフォルトの名無しさん:02/09/22 21:11
envp操作して
文字コード周りのめんどうさえみれば
ソケットも自在に使えるし
作ったあと美しい
perlだと軽自動車みたいな品のないコードが嫌い
ポインタとバッファオーバフローのチェックができない
Cプログラマが多すぎるからね
だからそういう人たちのためのperlなんだろうけどね
727は見込みありそうだけど
726は低脳そうだね
Q.具体的にどの辺が美しくないですか?<perl
>>729
> Q.具体的にどの辺が美しくないですか?<perl

switch 文がない。
同じ動作をする書き方のバリエーションが多すぎる。(書き易いけど、読み難い。)
sort() が $a, $b を使ってしまう。
多次元配列が無い。
構造体が無い。
ファイルハンドの扱いが特殊。(通常の変数じゃなくて、独自の名前空間をもつ。)

最近、Perl 使ってないから、今のバージョンだったら改善されているところはあるかもしれない。また、個人の好みによるところもある。とりあえず、今すぐ思いつくのはこんなところ。
まあ、多次元配列、構造体的な役割のものは増改築の温泉宿的に使えなくはないんだけど、
ほとんど同意。

同じ動作のバリエーションが多いっていうところが、
英語圏の人が「こう書けたら便利かなー(もしくは面白いかなー)」と
思って付け加えたんじゃないのか? って感じのところが美しくないんだな。
とってつけたような。
sort が $a, $b を勝手に使うって仕様はかなりびっくらこいた。
構造体もどきではだめ?
某サイトからパクッたサンプルソース
push @persons, { "name" => "tanaka", "age" => 24 };
push @persons, { "name" => "suzuki", "age" => 28 };
foreach $person (@persons) {
print "$person->{'name'} $person->{'age'}\n";
}
734730:02/09/22 22:18
>>732
だよねー。俺もこの仕様が一番違和感ある。

>>733
> 構造体もどきではだめ?
ダメ。メンバの名前間違えても、コンパイルエラーにならないし、構造体の配列とか、
配列を含む構造体とかになると収拾がつかなくなるから。
>>733
常識だよ。リファレンスで多次元配列が無名ハッシュで構造体が扱える。
>>730
switch文なんてifの羅列で十分。gotoもあるけど。
バリエーションが多いから書きやすい=上等。
ファイルハンドルは別のほうが便利。

736デフォルトの名無しさん:02/09/22 22:26
いいぞ。もっとperlを叩け!
>>732
予約語と思えば、、、
おとなしくSwitch.pm(>5.8)使え
Perlは糞Perlは糞Perlは糞Perlは糞Perlは糞Perlは糞Perlは糞Perlは糞
Perlは糞Perlは糞Perlは糞Perlは糞Perlは糞Perlは糞Perlは糞Perlは糞
Perlは糞Perlは糞Perlは糞Perlは糞Perlは糞Perlは糞Perlは糞Perlは糞
Perlは糞Perlは糞Perlは糞Perlは糞Perlは糞Perlは糞Perlは糞Perlは糞
Perlは糞Perlは糞Perlは糞Perlは糞Perlは糞Perlは糞Perlは糞Perlは糞
Perlは糞Perlは糞Perlは糞Perlは糞Perlは糞Perlは糞Perlは糞Perlは糞
Perlは糞Perlは糞Perlは糞Perlは糞Perlは糞Perlは糞Perlは糞Perlは糞
Perlは糞Perlは糞Perlは糞Perlは糞Perlは糞Perlは糞Perlは糞Perlは糞
ばーぁ>>Perler
程度低すぎるよ。この糞スレ。
おとなしくWebProgに逝ったら?
>>714 の指摘があって以来Rubyをほめなくなったね
>>735
> バリエーションが多いから書きやすい=上等。

と言うわりには、switch が無いのが謎なんだなー。

> switch文なんてifの羅列で十分。

と言うなら、for/foreach どっちかにしろよ。ここら辺の、いいかげんさがちょっと嫌い。

> ファイルハンドルは別のほうが便利。

まあ、これに尽きるね。要は、書きやすい事にかなり比重を置いている。これは、これでいいとは思うけど、その分保守はやりにくい。(= 大規模開発にはダメ言語)
従来 awk なんかで書いていたちょっとしたツールや、GCI から呼び出されるプログラムなんかにはなかなか便利。
Ruby >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
俺の中ではforはiを使って繰り返し、foreachは配列の要素をいじる、
って感じで使い分けるので必要。
万人にとって万能な言語なんかないのはあたりまえだが、やっぱり不満はいろいろ
あるもんだな。

Perl は、たしかに書きやすいけど読みにくい。でもそれをわかってて適所に使う
分には良いものだと思う。

あと自分で作るプログラムなら、スタイルを決めて書けばそれなりに保守しやすい
ものにもできる。それなりにセンスや経験はいるかもしれないけど。
747デフォルトの名無しさん:02/09/23 01:54
このすれの人って
いい人多いね
がんばれ
つうか、複数でコーディングする場合って、言語を問わず
コーディングスタイルを統一しないか?普通。
一貫したコーディング規約を維持できればかなり読みやすいと思うんだが<Perl
749デフォルトの名無しさん:02/09/23 13:35
めっちゃ低レベルなプログラムの質問していいですか
スキルがないもんで、、、、
そなこと書かんで早くやれYo
ああ、もう待ちくたびれた。俺はもう答えん。
俺は待ってるよ。どんとこい
753デフォルトの名無しさん:02/09/23 14:42
matsuda math
matsuda hiro
saito masa
saito hiro
inoue maithi
これに
while(<STDIN>){
/(\$+) (\$+)/;
$m = $2;
$m =~ tr/a-z/A-Z/;
print "$2, $1\n";
}
これをやったら
何も出てこないのですよ、
入力をこれ↓に差し替えるといいかも
$$$$$$$ $$$$
$$$$$$$ $$$$
$$$$$ $$$$
$$$$$ $$$$
$$$$$ $$$$$$
これでOK?

while(<>){
  /([^ ]+) (\w+)/;
  my ($fam, $name) = ($1, $2);
  $fam =~ tr/a-z/A-Z/;
  print "$name, $fam\n";
}
756デフォルトの名無しさん:02/09/23 14:58
>>756さん
ありがとうございます
STDINを抜くっていうのは何かしら利点があるのでしょうか
後二行めがよく分らんです、、、
勉強不足ですいません、、、
正規表現については自分で調べてください。
[^abcd]はabcd以外 \wはワードマッチ
758a5:02/09/23 15:04
どうもありがとうございました。
sage忘れてました、
申し訳ありません
使用可能文字:半角英数
最大文字数:20桁

を全て表示するプログラムを教えてください!!
おながいします!!
760デフォルトの名無しさん:02/09/23 19:44
馬鹿まるだしだな
セキュ板にでも帰れ
もしくは隔離板(php板)へどうぞ
>>759
> 使用可能文字:半角英数
> 最大文字数:20桁
> を全て表示するプログラムを教えてください!!

最大文字数って何のだ ? 表示幅のことか ? だったら...

print "0123456789ABCDEFGHIJ\n";
print "KLMNOPQRXTUVWXYZabcd\n";
print "efghijklmnopqrstuvwxyz\n";

でいいと思うが。
perl -e "print A .. Z, a .. z, 0 .. 9"
RubyユーザのふりをしてPerlをののしり、Rubyユーザの評判を落とそうと仕向けている
粘着基地外がいます。放置をお願いします。騙されたり煽られたりした人がいたら
フォローしてあげてください。
764747 ◆VaEdQZq. :02/09/24 00:24
みんな
HTMLタグをperlに埋めるときどうしてるの?
エディタでごりごり書くの?
それが知りたいYO
>>764
ゴリゴリは書かん。
1.テキストエディタでブリブリ書く。
2.HTMLエディタでプリプリ書き、
  print <<XXXXX のところにペーストする。
766747 ◆VaEdQZq. :02/09/24 01:01
>>765
なーる
だるい方法でがんばってるんだね
printのところにペーストするときって
結構コマイ作業で悲しくなったりしない?
変換するツールとか使ってないの?
なんで?

print <<'EOF'

hogehoge

EOF

でいいじゃん。
769765:02/09/24 01:15
全然関係ないけど << って普通に書き込めるんですね
Aboneで下が化けたもので全角にしてしまった。
print <<XXXXXXX
770747 ◆VaEdQZq. :02/09/24 01:32
>>768

タグ変換ツールどこにあるの?
HTMLをデザインしたら
ごそっとprint文にはさんでくれるようなつーるって無いの?
リンク先みたかぎりじゃないようだけど
まっとうなエディタ使って頭使えば
そんなツールは要らんけどね。
>>770
そのままペーストすればいい、変換する必要ない。
print <<XXXXX
<HTLM>
<HEAD>
うんたらかんたら
</HEAD>
<BODY>
ちんらかんたら
</BODY>
</HTML>
XXXXX;
間違った下記ね
print <<XXXXX;
<HTLM>
<HEAD>
うんたらかんたら
</HEAD>
<BODY>
ちんらかんたら
</BODY>
</HTML>
XXXXX

ようは、print <<XXXXX; から XXXXX までをそのまま標準出力してくれる。
>>773
そっか
perlだとごそっとこぴぺできるんだ
perlの美点があったじゃない
Cだとprintf("<html>...............</html>");
にはさむから長くなると醜くなるからある程度で細切れにしないと
いけないその点perlのほうがよいね
>>774
これを美点と見るかどうかは人それぞれ。
まぁPerlはsed,awkやらから受け継いでる部分もあるし。
777デフォルトの名無しさん:02/09/24 02:04
>使用可能文字:半角英数
>最大文字数:20桁

>を全て表示するプログラムを教えてください!!
>おながいします!!

ん?全ての組み合わせって事か?
パスワードでもクラックするのか?(藁
778777:02/09/24 02:25
ちなみに漏れは分からんがな・・・。
ヘタレなのでsage
>>778
簡単だよ。
print "00000000000000000000\n";
print "00000000000000000001\n";
print "00000000000000000002\n";
   :
   :
print "zzzzzzzzzzzzzzzzzzzy\n";
print "zzzzzzzzzzzzzzzzzzzz\n";
780777:02/09/24 02:38
一桁からって事じゃないのか?
print "0\n";
print "1\n";
print "2\n";
   :
   :
print "a\n";
print "b\n";
   :
   :
print "zzzzzzzzzzzzzzzzzzzy\n";
print "zzzzzzzzzzzzzzzzzzzz\n";

まぁ、どちらにしても漏れには分からん。っていうか質問が意味不明だYO!!
ていうかfor文をいっぱい使うだけだろ。。
>>777-781
あんたらがこの板を見てる理由がサパーリわからん
783デフォルトの名無しさん:02/09/24 09:42
>>774
リテラルに設定しておけばいい。
printfでだらだら書くなど愚の骨頂。
Perl2exeで変換の仕方どうスルんですか?
785デフォルトの名無しさん:02/09/24 11:11
#!/usr/bin/perl
#main()
{
  ....
  ....
}

と、c言語風に書く俺は邪道ですか?
こういうインデントがついてないと読みづらいから。
786デフォルトの名無しさん:02/09/24 11:41
>>782
ここは質問箱だろ。疑問を投げかける前に質問に答えれ!!
>>785
どうせなら
sub main(@)
{
   blah blah blah...
}
unshift @ARGV, $0;
main @ARGV;
VisualPerlって VisualStudio.NETいれないと使えないの?
789デフォルトの名無しさん:02/09/24 13:05
>>787
それいいですね、今度から使わせてもらいます。
790デフォルトの名無しさん:02/09/24 13:40
perlではハッシュの値としてリストを突っ込む事はできないんですか?
程度の低い糞スレ
それを見てるお主も糞尿
フンニョーッ!!! キャハ★

>>790

$hoge{abc} = [0, 1, 2, 3];
みたいな。

んで、
@list = @{$hoge{abc}};

みたいな。
794棄教者 ◆KIKYO7cg :02/09/24 16:34
八種のリファレンスだよね。
リファレンスになってるのは配列で、
ハッシュの値が配列のリファレンス。
Java ServletもServlet engineをちゃんと選ばないと遅いよ。
FFのサイトはTomcatつかってたけどありゃアホだね。
Perlにswitchが無いのはLarryの趣味というかポリシーを反映した結果だよ。

if .. then .. else ..とかは英語的に読むことができるが、
switchは唐突に分野の違う言葉だからキモイ

みたいなことをカンファレンスで言ってた
798790:02/09/25 12:07
>>793さん
ありがとうございます。昨日からPerlを使いはじめたばかりで
あたふたしていました。リファレンス使えばよいんですね。
799棄教者 ◆KIKYO7cg :02/09/25 14:11
>>797
Perl はぼくの好きな言語だけどたまに開発者の趣味が露骨に現れるから嫌い
C に似せてあるくせに break; が last; になっていたり、
continue や next のあたりの名前の付け方が違う。
一ヶ月に一度は last を break と書いて半日潰す。
禿同。

便利なんだか不便なんだかね。入り口が入りやすいだけに。

あと、これを書くと荒れるのかもしれないが、
オブジェクト指向の実装が微妙にヘンなのもなあぁ。

どうせとってつけたようになるんだから
Objective Cみたいなカッチョエーのにしてほしかったな。
>>797
> if .. then .. else ..とかは英語的に読むことができるが、
> switchは唐突に分野の違う言葉だからキモイ
> みたいなことをカンファレンスで言ってた

それは、そうだが普通の人には perl の構文の方が唐突に分野の違う言葉ではないかと...。
802デフォルトの名無しさん:02/09/25 22:10
Perlについて質問です。

$a1 〜 $a10 までの関数があるとします。
これをforループなどで全ての関数に対して同じ処理をしたいと思います。
$a$i ←このようなイメージです。$iを1〜10まで変化させるわけです。
このような場合、どのような記述をすればよいのでしょうか?
>>796
FF のサイトってファイナルファンタジーの公式サイト? そりゃ Tomcat じゃ
無理だろ。っていうかそれは道具の選定を間違ってるだけで道具に罪はない。
>>802

関数? 変数じゃなくて?
805デフォルトの名無しさん:02/09/25 22:43
>>804
すみません。変数でした。
それは、 ${"a$i"} こんなふうにかいてたとえば

for ($i = 1; $i <= 10; $i++) {
print ${"a$i"} . "\n";
}

こんなふうにできなくはないんだけど
配列変数を使うように全部書き直したほうがいいと思うよ。

応用の利くテクとしては

for ($i = 1; $i <= 10; $i++) {
eval("print \"\$a$i\\n\";");
}

とかも。
807デフォルトの名無しさん:02/09/25 23:18
>>806
どうもありがとうございました。
808 :02/09/25 23:57
なぜ配列を使わない?
809デフォルトの名無しさん:02/09/26 00:34
>>808
>>806 さんの言われた通りに配列を使ったプログラムに書き換えました。
810デフォルトの名無しさん:02/09/26 00:54
>>809
ズコー
811棄教者 ◆KIKYO7cg :02/09/26 08:33
sub func0 { .... };
sub func1 { .... };
...
sub func9 { ... };
に対して、
@funcref = ( \&func0, \&func1, ..., \&func9 );
てすることで、

foreach( @funcref ) {
  &{$_}( @arguments );
}
とすれば、複数の関数に対して一括処理を行うことができます。
なお、 @arguments というのは &func0, &func1, ..., &func9
に食べさせたい引数です。
812棄教者 ◆KIKYO7cg :02/09/26 08:35
漏れは C のポインタの概念がわからなくて苦労しましたが、
Perl のリファレンスを使っているうちに逆に C のポインタが理解できるようになりました。
まんせー。
>>812
お、すげー。
>>812
すごすぎ
僕の目標です
>>806
for $i (0 .. 9) {
$a_ref = "a$i";
print $$a_ref, "\n";
}
でもいいでしゅか?
>>801
んー気持ちはわかる。
事実折れもCで書いてる時間違ってlastとか書いちゃうことあるし。

んでもそこを突くのはちょっと違うような気もする。
「同じようなニュアンスで使える」別の言語なんだもん。
他の言語に慣れてるなら perltrap.podを声に出して熟読は必須でしょ。
http://www.perldoc.com/perl5.8.0/pod/perltrap.html
817デフォルトの名無しさん:02/09/26 12:22
サブルーチンAの引数にサブルーチンBを指定して
使いたいんですがどうにもうまくいかないようで・・・・。
どうやればよでしょうか?アドバイスお願いします。

sub FuncB
{
  #.............
}

sub FuncA
{
  $Func = $_[0];  #?
  &{$Func}();    #?
}

&FuncA(FuncB);   #?
>>812
perl のリファレンスは宣言がない分、文法的にすっきりしていると思ふ。
>>817
ヒント。 >>811
820817:02/09/26 12:52
>>819
どうもです。
821デフォルトの名無しさん:02/09/27 00:20
Windows98SEでFile::findを使ったプログラムを書こうとしているのですが、
「ソ」「予」「能」などの文字が入ったディレクトリ名だと、そのディレクトリ以下を
検索してくれません。
原因は、Shift-JISの2バイト目にバックスラッシュ文字が入っているためだと思うのですが、
これを回避するためのFile::findに対するパッチなどはありますか?

使っているperlは、ActivePerl5.6.1 BinaryBuild 633です。
822デフォルトの名無しさん:02/09/27 11:44
>>821
パッチはないと思う。
自力で\x5cを追加しておくれ。
>>821
jperl使ったら?
ラクダ本新しいの買った?なんで洋書の2倍の厚さと値段で
同じページ数なのyo!
(洋書の方が紙が薄い)
PerlerはCurlをやれば
もう馬鹿にされない(と思う)
がCurlが主流にならなければ馬鹿にされてしまう
>>824
策略
827スンスンブラクラできたよー(・∀・):02/09/27 22:45
@sun = ('スン','スーン','( ゜Д゜)ハッ');

for ($sunn=0; $sunn<1; $sunn--){
   $sn = "$sun[0],$sun[1],$sun[0],$sun[2]\n";
   print "$sn\n";
}
ブラクラの意味すら知らんのか。
Curlに誰も反応しないところが
Perlerなんだよな
だからDel厨やその他でPerlよりはいいよなとか言われてまうやないけ
もう氏ねとは言わせるなPerler立ち上がれ

http://curl.fc2web.com/

自作自演ですか?
curlは絶対に、はやらない
832スンスンブラクラできたよー(・∀・):02/09/27 22:56
>>828 いや、実行してみたらそんな気分になったわけで…
    止め方がわからないわけで…
    
>>829
Curl は終わっている言語だし。
>>833
アフォ
でてきたばかりで終わってるはないんじゃないの?
だいたい833は言語仕様の概要程度でもいいから知ってるの?
もちろん漏れは知らないけどね
>>834
ていうか2chのスレでは去年の夏ごろにおまえの紹介した
ホームページそのままの内容がコピペされてるだろうが。

ということは、それから一年以上もまったく更新のされていないページを
おまえはこのスレッドで紹介したことになる。

そんな言語を「死んだ」言語だといって何か問題があるのか?
836デフォルトの名無しさん:02/09/28 13:51
>>824
日本語版出たのかっ?!
837デフォルトの名無しさん:02/09/28 13:54
@sun = ('スン','スーン','( ゜Д゜)ハッ');
$"=',';

while (1) {
   print "@sun\n";
}
838スンスン:02/09/28 15:30
@sun = ('スン','スーン','( ゜Д゜)ハッ');

foreach (@sun){
print "$_";
}
839デフォルトの名無しさん:02/09/28 15:43
@sun = ('スン','スーン','( ゜Д゜)ハッ');

foreach (@sun) {
  print;
}
print foreach ('スン','スーン','( ゜Д゜)ハッ');
841デフォルトの名無しさん:02/09/28 16:03
>>840
そんなことできんの?
842デフォルトの名無しさん:02/09/28 16:04
print join ',', @sun;
843スンスン:02/09/28 16:30
$sun = 'スン';
@suun = ('スーン','( ゜Д゜)ハッ');

$surn[0] = $sun . $sun . $suun[0];
$surn[1] = $sun . $sun . $suun[0] . $suun[1];

foreach (@surn){
print "$_\n";
}
844837へ。:02/09/28 19:32
@sun = ('スン','スーン','( ゜Д゜)ハッ');
$"=',';

while (1) {
   print "@sun\n";
}
を10回繰り返すにはどうすればいいの?
for文にするなりカウンタ変数つけるなりすりゃいいじゃんか…
for( $i = 0; $i < 10; $i++ )
{
  @sun = ('スン','スーン','( ゜Д゜)ハッ');
  $"=',';

  while (1) {
     print "@sun\n";
  }
}
>>836
日本語フォント対応 2002/9予定
IDE 2002/12予定
日本語マニュアル Curl Programming Bible翻訳版 2002/12予定
だそうだ
お前見込みあるよ
@sun = ('スン','スーン','( ゜Д゜)ハッ');

print "何回スンスンしまっか?>";
$un= <STDIN>;

for ($suun=0; $sunn<$un; $count++){
  print "$sun[0]$sun[0]$sun[1]$sun[2]\n";
}

849棄教者 ◆KIKYO7cg :02/09/29 00:16
>>848
for 文は
for( $suun = 0; $suun < $un; $suun++ ) { # $count++ じゃない
でしょ。
>>849 2日前にやり始めたんで何が違うかわかりま千。

851棄教者 ◆KIKYO7cg :02/09/29 10:43
$count と $suun の違い。
852デフォルトの名無しさん:02/09/29 12:05
すいません、アクセスカウンターを作ろうと、入門書をよみながらコードを書いたのですが
いざCGIファイルを開いてみると、サーバーエラー、となってしまいます。
何が問題かさっぱりわかりませんコードは↓です

#! c:/perl/bin/perl

# カウントファイルの読み込み
open(IN, "<C:\Apache\htdocs\tendays\count.dat");
$count = <IN>;
close(IN);

++$count;

# カウントファイルへの書き込み
open(OUT, ">C:\Apache\htdocs\tendays\count.dat");
print OUT $count;
close(OUT);

# ヘッダー・HTML出力
print <<END;
Content-type: text/html

<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\">
<html>
<head><title>あくせすかうんたぁ</title></head>
<body>
<p>あなたは・・・・・$count番目の訪問者です。</p>
</body>
</html>
END
853852:02/09/29 12:07
すいません、コードのコピペ間違えました

#! c:/perl/bin/perl

# カウントファイルの読み込み
open(IN, "<./count.dat");
$count = <IN>;
close(IN);

++$count;

# カウントファイルへの書き込み
open(OUT, ">./count.dat");
print OUT $count;
close(OUT);

# ヘッダー・HTML出力
print <<END;
Content-type: text/html

<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\">
<html>
<head><title>あくせすかうんたぁ</title></head>
<body>
<p>あなたは・・・・・$count番目の訪問者です。</p>
</body>
</html>
END
854>>37じゃねーけど:02/09/29 12:12
>>853
悪いことは言わんから、黙って WebProg 板へ行け。そっちの方がまともな回答が得られるぞ。
次スレはいらないぞ。
続きはWebProgへいけ
二度と戻ってくるな。
857デフォルトの名無しさん:02/09/29 12:33
「超」がつく程の糞言語 = Perl
print "何回スーンしますか?";
print (("スン スーン ( ゜Д゜)ハッ\n") x <STDIN>);
perlはVBよりも糞なんですか?
はい、糞です。
↓次、どうぞ
861デフォルトの名無しさん:02/09/29 13:22
Ruby愛甲!
perlはHSPよりも糞なんですか?
863デフォルトの名無しさん:02/09/29 13:32
いぇs
はい、糞です。
↓次、どうぞ
>>853
勘で、、
count.dat のパーミッションに w 入れてる?
パーミッションに(w
867デフォルトの名無しさん:02/09/29 16:43
サーバはunix系じゃないのか
アレがapacheだったらログ見ればある程度分かりそう
868デフォルトの名無しさん:02/09/29 16:47
>>862
rubyプログラミングしたことないのに、ruby愛好家なのか
869棄教者 ◆KIKYO7cg :02/09/29 18:54
>>852
c:/perl/bin/perl
が変。
おたくのプロバイダーのCGIの説明書を読んで、
Perl のパスがどこにあるかを確認してください。
この件に限っては、荒らしが書いているとおり、 WebProg 板に逝った方が
親切な回答が得られそうです。
870862:02/09/29 19:41
>>868 まちがったんなら訂正してくれよ。

とりあえずperlやめる。買った本も理解したんで。HSP以下の言語らしいし。
>>863 >>864 ← 二人もそういっているし。
CGIは始めっからやる気ないし。
はじめたりやめたりするほどご大層な言語じゃなかろう?
使う用事がないならさいしょっから無駄なことしなけりゃいいのに。
人生そんなのの繰り返しなんだろうなこの人。
872 :02/09/29 20:00
perlって、管理に使うとウマー。
一般ユーザアプリにはあんまり使えないけど、
それは糞だからというわけではなく、
適材適所名だけ。
HSPも管理にはつかいづらいんじゃない?
使ったことないからわからないけど。
873854:02/09/29 20:41
>>869
> この件に限っては、荒らしが書いているとおり、 WebProg 板に逝った方が
> 親切な回答が得られそうです。

俺って、「荒らし」だったんだ...。
で話変わるけどさ
Apacheで使える
mod_なんたらのperlってあるのか貴様ら
IISはActivePerlだっけ?
多少速くうごくやつあるよね
って聞く態度じゃないなあ
大きめのログファイルを末尾から一行ずつとりだすのに<>を使う方法ってないですか?
877デフォルトの名無しさん:02/09/30 02:20
先頭から読むのと同じようにはできないね。
http://www.din.or.jp/~ohzaki/perl.htm#File_Reverse
878デフォルトの名無しさん:02/09/30 07:36
@lines = `tail hoge`
一行づつ読んでくるのは大変かも
単純に一回全部読み込んで、逆順で取り出すなら楽だろうけど
"大きめの"ってのがどれくらいかにもよるわな。
>>876
そんなニーズはほとんどないから無理。
素直に後ろからシークしていけ。
881デフォルトの名無しさん:02/09/30 13:24
質問です。
携帯でも書き込み可能な掲示板で、PCとかiMなどの端末表示をしたいと思っています。

 #$modeを文字に変換
if($mode == 1){$tanmatsu = "iM"};
if($mode == 2){$tanmatsu = "JS"};
if($mode == -1){$tanmatsu = "EZ"};
if($mode == -2){$tanmatsu = "DX"};
if($mode == 0){$tanmatsu = "PC"};

 # タイムスタンプ生成
($sec,$min,$hour,$mday,$mon) = gmtime($gtime+$TIMEZONE*3600);
$timestamp = sprintf("%02d/%02d %02d:%02d <%s>",++$mon,$mday,$hour,$min,$tanmatsu);

$tanmatsuに端末の略称を入れて、$timestampに付加して表示させようとしてるのですが、
<%s>の部分だけごっそりなくなって表示されてしまいます。
どうすればいいのか教えて下さい。
$mode の値がなにかわからんけど、独立したif文にしないで elsifとelseも
使って書かないとデフォルト値を $tanmatsu にセットすることもできんのじゃ?
883881:02/09/30 13:53
>>882
んー、その前にこんなのがあるから、こんな風に書いてみたんですけど…。

 # ---ブラウザ種別をチェック(iモード:1 EZインターネット:-1 PメールDX:-2 J-Sky:2 その他:0 )
$user_agent = $ENV{'HTTP_USER_AGENT'};

if($user_agent =~ /DoCoMo\//) { $mode = 1; }# iモード
if($user_agent =~ /UP\.Browser\//) { $mode = -1; }# EZインターネット
if($user_agent =~ /PDXGW\/\d\.\d/) { $mode = -2; }# PメールDX
if($ENV{'HTTP_X_JPHONE_MSNAME'} ne '') { $mode = 2; }# J-SkyWeb (Ver3.10)

                                   # PDAモード(ザウルス・コミパル・Dialo)
if($user_agent =~ /sharp pda browser/ || $user_agent =~ /Dialo/) { $pda = 1; }
884 ◆JAPH9PWA :02/09/30 14:02
>>881
<hoge>がタグのように見えるから。
どうすればいいのかはHTMLの基礎を学んでください。
885882:02/09/30 14:02
>>883
それなら変数$mode を使わずに直接 $tanmatsu にセットしたら?

if($user_agent=~ /DoCoMo/i){ $tanmatsu= 'iM'; }# iモード
elsif($user_agent=~ /UP\.Browser/i){ $tanmatsu= 'EZ'; }# EZインターネット
elsif($user_agent=~ /PDXGW/i){ $tanmatsu= 'DX'; }# PメールDX
elsif($ENV{'HTTP_X_JPHONE_MSNAME'}){ $tanmatsu= 'JS'; }# J-SkyWeb (Ver3.10)
elsif($user_agent=~ /sharp pda browser|Dialo/i){ $tanmatsu= 'PDA'; }
else { $tanmatsu= 'Other'; }
886881:02/09/30 14:05
>>884
タグと認識されて消えてるってことですか。
わかりました、学んでみます。
ありがとうございました。
887881:02/09/30 14:09
>>885
配布してるCGIに手を加えてるんですけど、他にも$modeってたくさん使ってるので…。w
その部分に$modeと$tanmatsuを2つ書けば済む話なんですけど、
あとで修正箇所が分かりやすいように、別に書きました。
888デフォルトの名無しさん:02/09/30 14:21
>>880
ニーズはあると思うが、、
>>888
あんたにとってはだろ

サイズ(データ全体)の分からないものの末尾から処理出来るわけ無いじゃん
>>889
perl -e 'print reverse <>'
891881:02/09/30 14:47
試しに>>881
$timestamp = sprintf("%02d/%02d %02d:%02d <%s>",++$mon,$mday,$hour,$min,$tanmatsu);
これを、
$timestamp = sprintf("%02d/%02d %02d:%02d %s",++$mon,$mday,$hour,$min,$tanmatsu);
に直してやってみたんですけど、まだ表示されません。

>>884さんの理由であってるんしょうか?
sprintf("%02d/%02d %02d:%02d $tanmatsu",++$mon,$mday,$hour,$min);
でホントに $tanmatsu に値が入ってるか確認。
>>889
>>890

プ
895881:02/09/30 14:58
>>893
ありがとうございます。
それでも出ないですね。^^;

もしかしたら、$timestamp変数を代入する所ではなく、実際表示する部分(?)で何か細工があるのかな?と思ってみたり…。
>>895
おまえ意図的にレスを飛ばしてないか?
if文ですべて式が真じゃなくて偽だから値がセットされてないことに気づけ馬鹿。
897881:02/09/30 15:07
>>896>>882(?)
一度は「elseif」を使った文も試してますよ。
でも、配布されてるCGIソース(>>883の部分)が正しいから、なくてもできると思ったのですが…。
elsifよりも最後のelse。または$tanmatsuを初期化しとけってこと。
899881:02/09/30 15:14
>>898
初期化しても、何も出ないっす。
やっぱり、おそらく表示する所で何かあるのか…。
「CGI は Web プログラミング板へ。」って
書いてあるのにしつこくしつこくCGIの話をここでしようとするってのは
どういうつもりなのかね。

901881:02/09/30 16:14
>>900
すいませんでした。
>>889
なんでニーズと技術的な話を混同させて話してるの?
903デフォルトの名無しさん:02/09/30 19:07
889さんは房なんだから、いじめちゃかわいそうだよ。。。
904デフォルトの名無しさん:02/09/30 19:20
ちなみに、while <>の逆順処理はforeach revese <>で可能。ただし、少し重い。
905K:02/09/30 19:48
教えてください。
-fとか-dでファイルが実在するかどうかをチェックするさいに、その大文字、小文字を
区別しないようにしたいのですが、なにかよい方法はありませんでしょうか。
どのような関数を書けばいいのでしょうか?すみませんが教えてください。
大文字・小文字を区別しないシステムならそれでチェックできると思うが
907デフォルトの名無しさん:02/09/30 20:10
>>906
糞は黙ってろ
908デフォルトの名無しさん:02/09/30 20:11
>>905
それ難しいかもね。
てゆうか、ディレクトリ中にあるファイル名全部出してきて、
そのリストに対して比較するしか無いような気がする。
他にやり方あったら誰か書いてよ
>>908
それが一番スマートだな。

sub is_exists_file_in {
 local *DIR;
 opendir DIR, shift or return;
 my %file = map { lc, $_ } readdir DIR;
 closedir DIR;
 return map $file{$_}, grep $file{$_}, map lc, @_;
}

ファイル名を一文字ずつバラして正規表現組み立てるってのも
考えついたが、明らかに上に挙げた例の方が分かり易かろう。
910デフォルトの名無しさん:02/09/30 21:43
初めて質問させていただきます。
sendmailで自動的にメールを送ります。
Windowsに送ると読めて,Macに送ると化けてしまうって時,
原因はどういったかんじでしょうか?

縺九i縺ョ縺疲ウィ譁・「コ隱阪Γ繝シ繝ォ
こんなかんじ。
>>909
その糞コードは、わざとか?
912デフォルトの名無しさん:02/09/30 22:06
911=906
>>912
いや、907=911
914デフォルトの名無しさん:02/09/30 22:53
コードがわからないと原因なんてわからん
915K:02/10/01 00:20
>>909
どうもありがとうございます。
すみまんせが良く分からないのでさらに質問させてください。
これだと、ファイル名がFoo/hoge/AAA.gifとかいうようにディレクトリ階層が
何個かある場合にもうまくいくのでしょうか???Foo/hoge/AAA.gifというのを
引数で与えた場合にも例えばfoo/Hoge/Aaa.gifというファイルが実在していれば
trueを返すような関数がほしいのです。。。すみませんご教授ください。
916デフォルトの名無しさん:02/10/01 02:17
すごいね。Perlスレなのに1000行きそうだね。
917デフォルトの名無しさん:02/10/01 02:36
Perlのコンパイラって作れませんか?
Perl2exeみたいな偽者じゃなくて。
Perlcc
gpc
sub is_exists_file {
  my @path = split m|/|, shift;
  pop @path if $path[$#path] eq '';
  if ($path[0] eq '') { $path[0] = '/' }
  elsif ($path[0] !~ /^\.+$/) { unshift @path, '.' }

  my $path = shift @path;
  defined(($_) = is_exists_file_in($path, $_))
    ? ($path .= '/' . $_)
    : return
      for @path;

  return $path;
}

ところでこのコードがやってることは当然理解してるよな?
-f や -d 一発で済むところを、わざわざ重そうな処理を加えるんだ。
大文字小文字の区別をしないのがそれほど重要なことか、
もう一度考えた方がいいぞ。
921デフォルトの名無しさん:02/10/01 22:42
readでファイルからバイナリデータを読み込ませたいのですが
0x19,0x1D,0x1Eが正常に認識されないみたいなのです。
printで表示した場合、

0x19 … 表示されず
0x1D,0x1E … 違う値が表示される

となります。
何故なんでしょうか?
違う値ってどういうのが?
923デフォルトの名無しさん:02/10/01 23:13
コードをかけ
924デフォルトの名無しさん:02/10/01 23:17
>>922
read(FILE,$data,2);
$num =unpack("n",$data);
print $num;

これを実行した時に
0x1A … 表示されず
0x001D … 173
0X001E … 174
と表示されてしまいます。

訂正:>>921で、"0x19 … 表示されず"と書きましたが0x1Aの間違いでした。
>>924
unpackの使い方がそれでは、、、結局どういうかたちで取得したいの?
文字? 文字コード?
926kalma ◆eRZ2quxw :02/10/01 23:34
>>925
ネットワークバイトのshort型整数をファイルから取得したいのですが…
やり方が間違っているのでしょうか?
二次元配列に対してsplice関数を使用するにはどうすれば?
>>927
例えば、こんなこと?
$ar[0][0]="00";
$ar[0][1]="01";
$ar[1][0]="10";
$ar[1][1]="11";
$ar[2][0]="20";
$ar[2][1]="21";
splice(@ar,1,1);
for $i (0 .. $#ar) {
@tmp=$ar[$i];
for $j (0 .. $#tmp) {
print "$ar[$i][$j]\n";
}
}
>>924
binmode FILE;
じゃないか?
930928:02/10/02 12:08
>>927
for(@ar) {
print "@$_\n";
}
でもいいよ。要するに無名配列は配列へのリファレンスってこと
わきまえてりゃどうやってもいい。
>>928
@tmp=$ar[$i]なんてやる必要ない。
for $j (0 .. $#{$ar[$i]}) {
ってしる。
932デフォルトの名無しさん:02/10/02 22:40
>>929
binmodeは設定しています
一体何が悪いんでしょうか・・・
933デフォルトの名無しさん:02/10/02 22:52
0x1Aの問題はMS-DOSのEOFコードが0x1Aだからだと判りました。
これの回避法ってあるんでしょうか?
934デフォルトの名無しさんぺいです:02/10/03 01:05
tr/\x1a//d;
誰か、NamazuでZipファイルの中身を検索するフィルタを書いた人いないの?
gzip, bz2用はあるのに、zipのはないんだよねえ。
936デフォルトの名無しさん:02/10/03 03:17

●●●●●●●●「オセロさえ納期内に作れない=OO役立たず 」祭り●●●●●●●
/|         |  |_____ΦΦΦΦΦΦΦΦΦΦΦ||ΦΦΦ
  |         |  | ̄ ̄ ̄ /|                    ||
  |         |  |   / /|TTTTTT   TTTTTTTTTT||TTTTT
  |        /\ |  /|/|/|^^^^^^ |三三| ^^^^^^^^^^^||^^^^^^^
  |      /  / |// / /|
  |   /  / |_|/|/|/|/|
  |  /  /  |文|/ // /
  |/  /.  _.| ̄|/|/|/         Λ_Λ
/|\/  / /  |/ /           (___)
/|    / /  /ヽ            /〔 非OO 〕〕つ
  |   | ̄|  | |ヽ/l            `/二二ヽ
  |   |  |/| |__|/   Λ_Λ     / /(_)
  |   |/|  |/      ( ´∀`)   (_)    Λ_Λ
  |   |  |/      // /  ^ ̄]゚        (`   )
  |   |/        ゚/ ̄ ̄_ヽ         ⊂〔〔 非OO 〕
937 ◆hMJAPH9PWA :02/10/03 10:00
>>933
出力用ファイルハンドル(例だとSTDOUT)もbinmode()してる?
多次元配列の同じ場所を何度も参照するときには、
その値をローカル変数にコピーした方が効率がいい?
それともヘタに変数を増やすとメモリを喰って効率が落ちる?

# 1
if($array[0][0][0] == 0) {

} elsif($array[0][0][0] == 1) {

} elsif($array[0][0][0] == 2) {

}

# 2
my($copy) = $array[0][0][0];
if($copy == 0) {

} elsif($copy == 1) {

} elsif($copy == 2) {

}
939厨房:02/10/03 15:43
本を見ながらPerlを勉強してるのですが、
環境がUNIX?でないせいか(WinでActivePerl+httpdでやってますが)
本の通りに書いても<STDIN>で入力できません(?

上記の環境で<STDIN>を使ったスクリプトを試すにはどうしたらよいでしょうか?
940棄教者 ◆egKIKYO7cg :02/10/03 16:02
>>939
MS-DOSプロンプトを起動して
C:\>perl -v
って入力してみてください。
なんか出てきましたか?
941厨房:02/10/03 16:28
>>940
This is perlうんちゃら…って出てきますが…?
リファレンスについて質問。

sub test {
 my(@array) = (1,2,3);
 $hash{'a'} = \@array;
 return;
}

@array[0]は当然null。
$hash{'a'}->[0]は1。

なぜこうなるのかが分かりません。
>>942
変数名は実際の「値」に付いている「名札」に過ぎず、
「値」自身はそれを参照する「名札」が全部消えるまで
メモリに残っているから。

その例だと test の中で (1,2,3) という各「値」に @array という
「名札」を付けている。@array は my で宣言されている「名札」なので
test の中でしか使えないが、$hash{'a'} という「名札」は
グローバルな「名札」なので、test のスコープから抜けた後でも
(1,2,3) という「値」を見る為に使える。

詳しくは「ガベージコレクション (GC)」「クロージャ」
「リファレンス (参照) カウンタ」といった単語で調べて。
>>943
>>942じゃないけど、明解レスありがと。
漏れも質問に答えてんだけど、質問者からの感謝がないのが
このスレの特徴かな。
945棄教者 ◆egKIKYO7cg :02/10/03 18:10
>>941
OKです。
UNIXで勉強するPerlの本にはコマンドプロンプト云々と書いてありますが、
MS-DOSがそのコマンドプロンプトになっています。

たとえば
---data.txt----
unko
chinko
manko
-------------
という三行のファイルを用意して
---hoge.pl----
while(<STDIN>) {
 print $_;
}
-------------
という Perl スクリプトを用意して
C:\>perl hoge.pl < data.txt
してください。
これで後は厨学生程度の大脳があれば STDIN は理解できるはずです。
厨学生程度の大脳があればコテを使わず
WebProg板にでも誘導するんだがな
947 ◆hG4XfSMGTg :02/10/03 18:21
糞コテは死ね
948 ◆hG4XfSMGTg :02/10/03 18:24
固定ハンドル=低スキル
荒らさないで!
950 ◆hG4XfSMGTg :02/10/03 18:26
次スレは立てるなよ。WebProgにでも引きこもっていてくれ。
次スレ立てても良いけど自称「厨房」なんてのの相手はしないで欲しい。
あと、perldoc読めば済むような話を色々解説するのもどうかな。
次スレを立てるのは禁止。
はい決まった。
糞Perlユーザの分際でスレッドなんか立てるなよ糞馬鹿
用事がないなら見なけりゃいいのになんでわざわざ出てきていらんこと書くのかな。
お呼びじゃないってやつですね。
おまえがな。ぷぷぷ
次スレは絶対に立てるなよ。荒らした上で削除依頼出すからな。
>>944
お礼が欲しけりゃ余所に逝け。二度と出て来るな。
これは次スレ絶対立ててくれという依頼ですか? プ
Ruby >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Perl
ぷぷぷ
反論したいか?反論したいんだろ?ぷぷぷ大爆笑
お前らには無理。
Perlみたいな糞言語を使う奴らは人間以下
逆に「次スレはいらん!」とか言ってるやつが次スレ立てそうだ(わら

ほんで日ごろの鬱憤をはらす、と。
娘はやらん!
日常生活で随分虐げられて過ごしてるんだろうな。
こんなつまらんことで人を見下したくなるっていうのは。

次スレ立たなかったら自分を保てなくなっちゃいそうだ。
誰か立ててあげれ
962Rubyust:02/10/03 19:12
っっっっっっっっっp
この板って、スレッドを立てた奴のリモートホストが見られるって知ってた?
ぷぷぷ
ばぁぁあか
死ねよ
WebProgに逝けば?
ム板で厨房言語のスレッドを乱立させないで欲しい。
そうじゃなくてくだらない話題はよその板でやってくださいと
書いたPerlのスレを立てておかないと
いつか>>1みたいなのがまたでてきちゃって元の木阿弥なのでは?
は?板の注意事項に「Perlのような厨房言語はWebProg板へ」と書いておけば済むことだろ。
ん? じゃあそうしたら? まあ、>>966にはそんなごたいそうなことは一生できないでしょうが。
たぶん「今荒らしてるやつが」
「検索しましたが一覧にないようなので立てました」とかいいつつ
次スレを立てると思うよ。
1000鳥合戦ってのはなさそうでつね。
まぁ、しびれを切らした君みたいな厨房が立てるんだろうな。ぷ
971デフォルトの名無しさん:02/10/03 19:36
この板って、スレッドを立てた奴のリモートホストが見られるって知ってた?
また、ruby基地外の荒しが始まったな。
無視して便利なPerlの恩恵に与ろうぜ。
ウメタテタ
タタタ
タテタメウ
ウメエコノミカン
カミノンコウメエ
アナグラムシテミタ
 ミタナアグラシテ
982うんこ厨房:02/10/03 20:46
スレッド一覧になかったのでperlスレたててもいいですか?
ヤメテ
イタチガイデス
ウンコキタナイ
プロバイダにおまえのIPを突き止めてもらった。
これから住所の特定に入る。
プーン
ソロソロスパートダョ
ダョ
ダョダョ
ダョダョダョ
ダョネーダョネー
ナンノウタダケ
マァィィャ

マィマィ
996Rubyist:02/10/03 21:22
ばーぁ
997デフォルトの名無しさん:02/10/03 21:22
yrdy
998デフォルトの名無しさん:02/10/03 21:22
tesdt
999ババ:02/10/03 21:22
1000デフォルトの名無しさん:02/10/03 21:23
test
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。