【Perl】初心者コーナーPart9
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
01/12/28 23:21ID:SPLRvqQi1:自分はこう言う事がしたい。
2:それでこんな風にやってみたが・・・
3:それだとこんなエラーが出て上手く行かなかった。
1と3が無いと誰も答えられないよ、良い回答は良い質問から。
一緒に勉強しましょう。
参考書籍はこちら【【Perl,CGI】参考書籍 第2版 】
http://pc.2ch.net/test/read.cgi/php/988809842/
CGIの質問はこちら【CGIだけど、なんか質問ある?part5】
http://pc.2ch.net/test/read.cgi/php/1009331505/
その他の雑多な話題は、【CGIに依存しないPerlの話題一般】
http://pc.2ch.net/test/read.cgi/php/991313362/
過去ログ、その他の役立ち情報は>>2-10を見よう。
0266251
02/01/21 16:17ID:???逝ってきます。
0267茶文字 ◆xELvisFU
02/01/21 16:21ID:???をっとスマソ
うまくいかないので別の方法で無理やり辻褄あわせてて、もとのスクリプトと
違うこと書いちゃいました。
$count++をforeachの最後に入れて、print $page[$count];にしてたはず・・・
うがー なんでこんなところにひっかかってんだ私;
0268名無しさん@お腹いっぱい。
02/01/21 16:25ID:yxhIL91Y俺ならこんな感じ。チェックしてない。
open (FILE,"xxx.dat"); @page = (<FILE>); close (FILE);
$page[0] =~ s/\n//g;
$page[1] =~ s/\n//g;
print <<"EOH";
Content-type: text/html; charset=Shift_JIS
<html>
<head>
<title>$page[0]</title>
</head>
<body>
<h1>$page[0]</h1>
<h2>$page[1]</h2>
EOH
$count = @page;
for($i = 2;$i <= $count; ++$i) {
$$page[$i] =~ s/\n/<BR>\n/g;
print $page[$i];
}
print "</body></html>";
0269名無しさん@お腹いっぱい。
02/01/21 16:26ID:yxhIL91Yミス
>$$page[$i] =~ s/\n/<BR>\n/g;
$一個おおいっすスマソ
0270名無しさん@お腹いっぱい。
02/01/21 16:28ID:???print "Content-Type: text/plain\n\n";
print $ENV{QUERY_STRING}
とかやってデータを確認したら?
確認後のエンコード周りがあやしい。
>>261
5.6触ったこと無いが,
Perl5.6は仕様を足しただけみたいだから
Perl5やってからでも特に支障無いと思う。
0272
02/01/21 16:30ID:VXT1KPc/foreach (@page){
print $_;
}
じゃいけんの?
$countってどこでインクリメントするの?
0273
02/01/21 16:36ID:rALZtRCfContent-type: text/html; charset=Shift_JIS
<html>
<head>
<title>$page[0]</title>
</head>
<body>
<h1>shift(@page)</h1>
<h2>shift(@page)</h2>
EOH
foreach (@page){
print $_;
}
具体的にはこうか?
0274
02/01/21 16:38ID:pTKsFCnA0275傍観者
02/01/21 16:40ID:bIKApu3O0276ほげ
02/01/21 16:41ID:bIKApu3O0278名無しさん@お腹いっぱい。
02/01/21 16:52ID:???名前変えてもID出てるぞ。
0279名無しさん@お腹いっぱい。
02/01/21 16:53ID:???TMTOWTDIってことで、色々出てくるのはいいんじゃねーの。
0280名無しさん@お腹いっぱい。
02/01/21 16:55ID:???おしい。
ヒアドキュメントの中では @{[shift @hoge]} のように使うと吉。
0281名無しさん@お腹いっぱい。
02/01/21 17:00ID:yxhIL91Yでも、せっかく作ってきたので書いちゃう。
どうしてもforeach使うんだったらこんな感じ。
やっぱしチェックしてない。
open (FILE,"xxx.dat"); @page = (<FILE>); close (FILE);
$page[0] =~ s/\n//g;
$page[1] =~ s/\n//g;
print <<"EOH";
Content-type: text/html; charset=Shift_JIS
<html>
<head>
<title>$page[0]</title>
</head>
<body>
<h1>$page[0]</h1>
<h2>$page[1]</h2>
EOH
$i = 0;
foreach (@page){
if ($i ne "0" && $i ne "1"){
$_ =~ s/\n/<BR>\n/g; print $_;
}
++$i;
}
print "</body></html>";
0282名無しさん@お腹いっぱい。
02/01/21 17:01ID:yxhIL91Yお、おれ?
おれかよ!(笑)
@page = (<FILE>);
close (FILE);
$title = shift(@page);
$h2 = shift(@page);
print <<"EOH";
Content-type: text/html; charset=Shift_JIS
<html>
<head>
<title>$title</title>
</head>
<body>
<h1>$title</h1>
<h2>$h2</h2>
@page;
</body></html>
EOH
0284茶文字 ◆xELvisFU
02/01/21 17:11ID:???それぞれのサンプルもきちんと見て勉強させてもらうです。
WebProg板サイコー(・∀・)イイ!
0285名無しさん@お腹いっぱい。
02/01/21 17:14ID:???ということで>>275-276はギャフンと言え
0286名無しさん@お腹いっぱい。
02/01/21 17:19ID:???@page = map {$_ . <BR>} @page;
だね。
0288名無しさん@お腹いっぱい。
02/01/21 17:36ID:???このスレの回答者は (笑)
0290aaa
02/01/21 17:42ID:7eJzqhDP0291名無しさん@お腹いっぱい。
02/01/21 19:00ID:6X0/37gMちんぷんかんぷんです。しかもスレ違いの予感もしてます。ごめんなさい。
プログラムはグレー色のウィンドウで表すこと。
しかもユーザーに赤、青、緑から好きな色を選ばせられるようにすること。
なおかつ1度ではなく何度もユーザーにその色を何度も変える事ができるようにすること。
誰か教えてください。
0292名無しさん@お腹いっぱい。
02/01/21 19:06ID:???0293名無しさん@お腹いっぱい。
02/01/21 19:12ID:6X0/37gMプラットフォームとは何ですか・・・?
0294名無しさん@お腹いっぱい。
02/01/21 19:13ID:???それと、言語はPerlなの?
0295名無しさん@お腹いっぱい。
02/01/21 19:19ID:???君の開発環境を書くのだ。
しかし、宿題をスレに投げる という安直さがゴルァ!だ。
0296名無しさん@お腹いっぱい。
02/01/21 19:27ID:6X0/37gMYour name? Lucy
Occupation/Job Title? Comedian
Nice to meet you Lucy, Comedian!
名前を入れればそのままその名前が文章につかわれる
ってなのを前回説明されました。
これはPerlなのでしょうか?
0297名無しさん@お腹いっぱい。
02/01/21 19:34ID:???うーん・・・・・ 他になんかないの?
全部英語で書かれてて、一行目が「#!/usr/local/bin/perl」です、とか。
0298名無しさん@お腹いっぱい。
02/01/21 19:36ID:???取りあえず、環境を書いてくれ。
UNIX系なのか、Windowsなのかぐらいは判別できるだろ?
0299名無しさん@お腹いっぱい。
02/01/21 19:40ID:6X0/37gMとりあえず次の授業にきっぱりと出来ませんでしたって胸はって言います。
一緒に考えて下さってありがとうございました。
ところで、授業のレジュメにAlgorithmも学ぼうって書いてあります。
このAlgorithmもなにかの言語なのでしょうか?
0300名無しさん@お腹いっぱい。
02/01/21 19:49ID:???PerlでGUIのプログラムなんて出来ないよね?
ただ、適切なスレに誘導するために情報聞き出してるんだよね?
まさかPerlで書けるから聞いてるんじゃないよね?
ビクビク…。
0301名無しさん@お腹いっぱい。
02/01/21 19:51ID:???0302名無しさん@お腹いっぱい。
02/01/21 19:52ID:???ていうか授業出てなかったろ…。
出てれば絶対こんな質問しないぞ…。
0303名無しさん@お腹いっぱい。
02/01/21 19:56ID:???0304名無しさん@お腹いっぱい。
02/01/21 19:56ID:6X0/37gMやっぱりどうも難しいのでもっと初心者用のスレから出直してきます
ありがとうございました。。。
0305名無しさん@お腹いっぱい。
02/01/21 19:58ID:???>301は>300向けであって、あんたに言ってるんじゃないと思うぞ。
0306名無しさん@お腹いっぱい。
02/01/21 20:01ID:hWcQ0KB7どう見てもこれはCの課題だよな。
0307名無しさん@お腹いっぱい。
02/01/21 20:02ID:hWcQ0KB7VBかVCの課題だろ?
0308
02/01/21 20:07ID:OlNKxLTkパチマガで池上蓮から「旧友の自殺狂言騒動に抑えきれない嫌悪感」
で晒された本人(謎の人物)が池上に対して怒りまくってるぞ!!
謎の人物ホームページ↓
http://www.geocities.co.jp/Bookend-Hemingway/4715/
関連スレッド
謎の人物公式スレッド↓
http://kaba.2ch.net/test/read.cgi/pachi/1009686980/l50
0311茶文字 ◆d38VidMY
02/01/21 20:15ID:???ってことは、ここで聞いたコーディングがコンパイルされる可能性が
あったわけですね?(w
>>308
マルチポストウザイYo!
0312名無しさん@お腹いっぱい。
02/01/21 20:18ID:???何を聞きたいの?
もうちょっと分かりやすく書いてみて
0313300
02/01/21 20:19ID:???PerlでWindowsアプリケーションは作れないよね?
なんつーか、
> プログラムはグレー色のウィンドウで表すこと。
とか。。
それと同様にX Window のアプリケーションも作れないよね?
ってことはGUIのプログラムって作れないんでは?
んー。どこの考え方が間違ってるんだろう。。
「GUI」を勘違いしてるのかな…。
0314名無しさん@お腹いっぱい。
02/01/21 20:26ID:???一例。
http://freshmeat.net/img/screenshots/19044.jpg
(freshmeatで"Perl Gtk"とか"Perl Tk"で検索してみ。併せて100以上でてくるから)
検索エンジンなどでGtk-Perlとか、Perl/Tk, Perl/Qt. PythonならPyUI, PyQtとかを調べるよろし。
0315名無しさん@お腹いっぱい。
02/01/21 20:27ID:???(w とか言わずに一緒に勉強しようよ
>>313
Perlでは出来ないけど、TkとかGtk使えばperlの文法で出来るんだから
全然間違えて無いよ。
もし無くてもPerlが叩けるライブラリ書けば良いでしょ?
0316名無しさん@お腹いっぱい。
02/01/21 20:30ID:???0317名無しさん@お腹いっぱい。
02/01/21 20:35ID:hWcQ0KB7TkとかGtkを課題に出す情報処理系の宿題かこれ?
というそもそも論に帰ってしまった私です。
0318300
02/01/21 20:35ID:???なるほど。ありがとうございます。
>>316
初心者だけどなんか役に立つこと出てくるかなぁと思って
かちゅ〜しゃのお気に入りに入れて巡回してますが。。
0319名無しさん@お腹いっぱい。
02/01/21 20:50ID:???0320茶文字 ◆d38VidMY
02/01/21 21:01ID:???聞き流してくだされ>all
で、話は変わりますが。
Webサーバ上の特定のディレクトリにあるファイルをリストアップして、
ファイル一覧を表示するスクリプトを作りました。
せっかくだから各ファイルの更新日時を自動的に表示させたいのですが、
これはPerlでは無理なのでしょうか?
.cgiでSSIを許可するのはなんか怖いし、JavaScriptは自分自身あまり
ONにしないので、できたら避けたい今日この頃なんですが。
0321名無しさん@お腹いっぱい。
02/01/21 21:15ID:???基本的にそのディレクトリに有るファイルが、CGIのみから更新されるなら
SSIでincludeする(execは殺す)為のファイルを書き出すだけで良い。
もし、CGIが感知しない部分でダイナミックに更新されるなら
素直にCGIで表示するか、呼び出し元のHTMLを書き換えるしか無いんじゃ
無いかな
0322茶文字 ◆d38VidMY
02/01/21 21:32ID:???早レスさんくす。
実はファイルリスト表示も各ファイルの内容閲覧も同じスクリプトでまかなっています(リストされるファイルはすべてHTMLのbody部分です)。
例)
hoge.cgi
→引数がない場合はファイルリストを表示
hoge.cgi?page=020121
→ファイル名が020121のファイルをbody部に取り込んで表示
なので、更新日時を表示するときの拡張子が.cgiなわけです。
SSIを使うには、.cgiからSSIを使えるようにしなければならないわけで、
これは320に書いたように避けたいのです。
てことは、ファイルリスト表示は.shtmlで出力してやるのが無難っぽいですね。
短いスクリプトなので、頭の体操だと思って最初から組み直してみます。
ありがとうございました。
0323茶文字 ◆d38VidMY
02/01/21 21:34ID:???組み直さなくてもHTML出力部分だけ付け足して、
そのあとリダイレクトすればいいのか?
0324名無しさん@お腹いっぱい。
02/01/21 23:26ID:???> hoge.cgi?page=020121
Taint check をしっかりとやるようにね。
0325名無しさん@お腹いっぱい。
02/01/21 23:34ID:???$abcd = "AAAA";
open(CF, "./a.txt") || die "Can't open Header File $!";
while (<CF>){
chop;
print;
}
close;
と記述しました。
a.txtには
$abcd
と書きました。ですが、どうしても上記プログラムを実行したら
$abcdと表示されるだけでAAAAと表示されません。どうにかして
$abcdを変数としてファイルより読みだすことはできないでしょうか?
0326名無しさん@お腹いっぱい。
02/01/21 23:40ID:???かな?
0327名無しさん@お腹いっぱい。
02/01/21 23:40ID:???0329名無しさん@お腹いっぱい。
02/01/22 01:09ID:???細かいことだけど、自分がたずねる質問に「ご」をつけるのは
ちょっと変だと思うよ。
0330名無しさん@お腹いっぱい。
02/01/22 10:12ID:efarCwHc日記帳のように画像アップして1行コメントを入れるスクリプトを書いてるんですが
うまくいきません。
どこかによいサンプルはないでしょうか?
0331名無しさん@お腹いっぱい。
02/01/22 10:36ID:???http://pc.2ch.net/test/read.cgi/php/1003132904/l50
0332名無しさん@お腹いっぱい。
02/01/23 04:57ID:sT5Qn28Rhtmlファイル内の&を%44になおすプログラムを作っていて
以下のとおりやってはみたもののうまくいきません。
#!/usr/local/bib/perl
while(<stdin>){
s/&;/%44;/;
print;
}
どうしても置き換えてくれません。
教えてください。
0333名無しさん@お腹いっぱい。
02/01/23 05:16ID:???Perlへのパス
stdinからデータが読み込まれているか
検索・置換する文字列
を確認してみてわ
0334332
02/01/23 07:16ID:sT5Qn28R遅れてすみません
333さんがおっしゃられるところは確認しました。
自分で気になっているところは
test→test1みたいな普通の文字の置き換えはできるのですが
&とか%がはいっているとまったく駄目なのです。
どうしたら解決できるかわからなくて。。。
0335名無しさん@お腹いっぱい。
02/01/23 09:25ID:fLlnsoLj#!/usr/local/bin/perl
while(<stdin>){
s/&/%44/g;
print;
}
0336名無しさん@お腹いっぱい。
02/01/23 19:47ID:SS/bYptOCGIファイルと同ディレクトリに「mimew.pl」
http://www.cc.rim.or.jp/~ikuta/mime_pls/index.html を設置して、
CGI内のメールのヘッダ情報記述部分で
$mimew = './mimew.pl';
require $mimew;
$subject = "[カタログ請求]";
$subject2 = &mimeencode($subject);
open (SENDMAIL, "| $nkf | $sendmail -t -n") || die;
print SENDMAIL "To: $recieve\n";
print SENDMAIL "Bcc: $bcc\n";
print SENDMAIL "From: $mail\n";
print SENDMAIL "Reply-To: $mail\n";
print SENDMAIL "Subject: $subject2\n";
print SENDMAIL "Content-Type: text/plain; charset=\"iso-2022-jp\"\n";
print SENDMAIL "Content-Transfer-Encoding: 7bit\n\n";
上記のようにしたのですが、エンコードされません。
お助け。。。
0337名無しさん@お腹いっぱい。
02/01/23 20:15ID:???$nkf = '/usr/local/bin/nkf';
$sendmail = '/usr/sbin/sendmail';
$mimew = '/フルパス書いてちょ〜/mimew.pl';
でどうよ。
0338ちょっとおしえて ごめんね
02/01/23 20:48ID:FEde7HEx掲示板一覧ってどこから入るの?
0339名無しさん@お腹いっぱい。
02/01/23 21:30ID:Pj40bVNfの404のエラーの例として、.htaccessにて404.cgiを表示させてますよね。
この404.cgiの中で、ユーザーが打ち込んだURLを表示させてるんですが、
これってPerlでどう書いたらいいんでしょうか?
0340332
02/01/23 21:37ID:sT5Qn28R貴重なアドバイスありがとうございました。
解決しました。
あらためてありがとうございます。
0341名無しさん@お腹いっぱい。
02/01/23 22:30ID:RVBh2RNrテキストカウンタを作っている。
CGI自体はhtmlでなくテキストだけを吐いて、
イメージカウンタと同じような感じに
html内に挿入するようにしたい。
2:それでこんな風にやってみたが・・・
Content-typeをtext/htmlにしたままimgで貼ってみたけど
3:それだとこんなエラーが出て上手く行かなかった。
ペケが出るだけで無理だった。
0342名無しさん@お腹いっぱい。
02/01/23 22:34ID:6XVla5oihtmlフォームから送信ボタンを押すとcgiを呼んで確認で内容を一覧表示させてます。
そのあとにブラウザの戻るボタンを押したとき、htmlフォームに戻りますが、それまで
入力していた内容が消えてしまいます。元のcgiではブラウザの戻るボタンで戻っても
フォームに入力されていた内容は消えなかったんです。
この違いはどういった原因が考えられるでしょうか?
0343342
02/01/23 22:44ID:6XVla5oiCGIの影響じゃないのかな・・ この現象誰か知りませんか?
>>341
ペケが出るって事は画像へのリンクがうまくいってないんじゃないかな?
0344341
02/01/23 22:58ID:RVBh2RNrいや、画像でなくテキストを挿入したいんですが
コンテントタイプの吐きかたとhtml側の呼び出し方がわからなくて
とりあえずimgで貼ってみただけです。。
CGIが画像を吐いてないので当たり前といえば当たり前なんですが。。
>フォーム
戻るボタンは単にブラウザが自分の履歴を表示しているんだから
この場合呼び出されてないCGIは関係ないと思います。
というか、どんな風に手を加えたらおかしくなったかを書くと吉と思われ。
0345名無しさん@お腹いっぱい。
02/01/23 23:05ID:???一般にはSSIやフレームが使われる。
0346336
02/01/23 23:07ID:7DXRWN8lありがとうございます。
今外出中なんで明日にでも試してみます。
0347341
02/01/23 23:16ID:RVBh2RNr有り難うございます。
過去にフレームで画面をちっちゃく切り取って
そこにhtmlで吐いたカウントを放り込んでいたんですが、
それをやめたくていろいろ試しているので
SSIの方を調べてみようと思います。
0348名無しさん@お腹いっぱい。
02/01/24 00:12ID:gcEosdJofor ($no = 0; $no <9; ++$no){
@suuji = (1,2,3,4,5,6,7,8,9,10);
@kekka = grep /$no/, @suuji;
print "@kekka\n";
}
を実行すると、
10
1 10
2
3
4
5
6
7
8
と、10まで出てきてしまうんですが、
1から9までのみ出すようにするにはどうすればいいんでしょうか?
0349名無しさん@お腹いっぱい。
02/01/24 00:15ID:???@suuji = (1,2,3,4,5,6,7,8,9,10);
@kekka = grep /^$no$/, @suuji;
print "@kekka\n";
}
誰でも思いつく一番簡単な変更はこれだわな。
0350ブロックで使うとお手軽だにゃん
02/01/24 00:23ID:???my $max = 10;
my $min = 3;
my @result = grep{$_ > $min && $_ < $max}@ary;
print @result;
0351名無しさん@お腹いっぱい。
02/01/24 00:32ID:???0352名無しさん@お腹いっぱい。
02/01/24 00:34ID:???ありがとうございました。なんとか出来そうです。
正規表現だけで出来たんですね…。もっと本をよく読みます。
0353352
02/01/24 05:00ID:???1 あいうえお
2 かきくけこ
というようなものが、配列に100個ほど入っているとして、
右の番号を指定して、その部分だけ左のものと一緒に取り出したいんですが…。
上のやりかただと、どうやっても出来なくて…。
このままじゃ気になって寝られない…でも寝ないと死ぬので寝よう…
0354名無しさん@お腹いっぱい。
02/01/24 08:11ID:nUVwgo4zデリミタを使う。
1<>あいうえお
2<>かきくけこ
・
・
・
とする。
これを配列に読み込んで、、たとえば、@linesに読み込んだとしたら、
foreach (@lines) {
($number,$text) = split(/<>/,$_);
if ($number eq "目的の番号") {
print "番号は$numです。内容は$textです\n";
}
}
こんなかんじになるわけ。
0355名無しさん@お腹いっぱい。
02/01/24 09:08ID:???LinuxにPerlがインストールされているかどうかを
確認するには簡単にはどうするのでしょうか。
そのperlのVersionも表示させれると
うれしいのです。
よろしくサンクスコ
0356名無しさん@お腹いっぱい。
02/01/24 09:12ID:nUVwgo4zコマンドラインから、
perl -V
0357名無しさん@お腹いっぱい。
02/01/24 09:19ID:???0358336
02/01/24 10:49ID:ENGsaylW上記の部分を以下の様にすると、無事エンコード処理されました。
open (SENDMAIL, "| $sendmail -t -n") || die; #$nkfを外しました
結果的に解決はしたのですが、何が悪かったのかが分かっていません。
そもそも上記の箇所はいつもメール作成部分の定型的に使用していたの
で、nkfがどんな役割を果たしているのか、なぜnkfが絡むとエンコードさ
れなかったのかがわかっていません。
(ちなみにnkfは冒頭で $nkf = "/usr/bin/nkf -j"; と定義しています)
何が悪かったのでしょうか?
0359名無しさん@お腹いっぱい。
02/01/24 11:11ID:LyCCkAYD@ISAって何の略なのでしょう?
0360名無しさん@お腹いっぱい。
02/01/24 11:26ID:???@INCはIncludeかねぇ。
@ISAはISAバスしか思いつかない・・・。
0361名無しさん@お腹いっぱい。
02/01/24 11:44ID:???0362名無しさん@お腹いっぱい。
02/01/24 11:45ID:???なるほど。
0363名無しさん@お腹いっぱい。
02/01/24 11:46ID:???継承元と。
へぇ。
0364Technetium@1000ゲト ◆gZEJGdGE
02/01/24 12:57ID:???IPの桁を
「0.0.0.0」→「 0. 0. 0. 0」
こんな風にそろえるプログラムを作ってみたんです。
で、この桁をそろえる部分でどれくらいのロスがあるのかなと思って、2種類のプログラムを組んで試してみました。
プログラム「い」
($ipa , $ipb , $ipc , $ipd) = split(/\./, $remoteadd);
if ($ipa < 10) { $ipa = " $ipa"; }
elsif ($ipa < 100) { $ipa = " $ipa"; }
if ($ipb < 10) { $ipb = " $ipb"; }
elsif ($ipb < 100) { $ipb = " $ipb"; }
if ($ipc < 10) { $ipc = " $ipc"; }
elsif ($ipc < 100) { $ipc = " $ipc"; }
if ($ipd < 10) { $ipd = " $ipd"; }
elsif ($ipd < 100) { $ipd = " $ipd"; }
$ipadd = "$ipa\.$ipb\.$ipc\.$ipd";
プログラム「ろ」
@ip = split /\./, $remoteadd;
if ($ip[0] < 10) { $ip[0] = " $ip[0]"; }
elsif ($ip[0] < 100) { $ip[0] = " $ip[0]"; }
if ($ip[1] < 10) { $ip[1] = " $ip[1]"; }
elsif ($ip[1] < 100) { $ip[1] = " $ip[1]"; }
if ($ip[2] < 10) { $ip[2] = " $ip[2]"; }
elsif ($ip[2] < 100) { $ip[2] = " $ip[2]"; }
if ($ip[3] < 10) { $ip[3] = " $ip[3]"; }
elsif ($ip[3] < 100) { $ip[3] = " $ip[3]"; }
$ipadd = "$ip[0]\.$ip[1]\.$ip[2]\.$ip[3]";
この二つを、
while (--$kurikaesi){
}
の中に入れて1000000回(爆)繰り返してベンチマークした結果、プログラム「ろ」の方が約1秒も速いという結果を得ました。
速いのはいいんです。それはいいんですが、なぜ配列を使っただけで処理速度が上がったのかがわかりません。
これはなぜなのでしょう?
0365名無しさん@お腹いっぱい。
02/01/24 14:49ID:???sprintfとかじゃだめなんでしょうか?
0366配列
02/01/24 15:36ID:RS3bsnfp(1)配列をある文字列で検索して、その配列の番号を調べる。
(2)配列の任意の位置に要素を代入(追加)する
(3)配列をCSVデータ(カンマ割りテキスト)に変換する。
上の事をforeachなんかを使って配列の要素をグルグル一個一個
調べて実現する事は出来るんだけど・・・もっと効率的なやり
方があるような気がしてならない・・・。
(2)はつまり
@ary[0]="A";@ary[1]="C";@ary[2]="D";を、いかにして
@ary[0]="A";@ary[1]="B";@ary[2]="C";@ary[3]="D";
にするかって事なんだけど・・・簡単?
■ このスレッドは過去ログ倉庫に格納されています