Perlコーディング初心者質問スレ Part 42
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2005/05/25(水) 06:36:28ID:PVpWgcdf【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
「コマンドの意味がわかんない」とかはマニュアル見ましょう。
回答者さんは何でも屋じゃありません。
1: 自分はこういう事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。
最低でも1と3が無いと誰も答えられないよ。
ソース貼る時は、全角スペースでインデント忘れずに。
良い回答は良い質問から。一緒に勉強しましょう。
過去ログやお勧めサイトは >>2-10
0437nobodyさん
2005/06/16(木) 00:43:45ID:???いろいろと難しいかもしれんですな
0438nobodyさん
2005/06/16(木) 01:07:20ID:???SMART はわかりやすいんだけど、ちょっとね。
まあ 5.005のファイルハンドルなら、↓読めば結構理解いいかも。
http://www.kt.rim.or.jp/%7Ekbk/perl5.005/perlfaq5.html#How_can_I_make_a_filehandle_loca
0440nobodyさん
2005/06/17(金) 00:42:38ID:FGf+BXABアルゴリズムって何ですか?perlの文法わかるのに、掲示板とかチャット
とかプログラム作成しようと思うとイマイチ、わかりません。
どうすればよいの?アルゴリズムがわからないから、プログラム作成でき
ないのでしょうか?
0441nobodyさん
2005/06/17(金) 00:48:21ID:???既にあるものを参考にしない事(詰まったときにヒントとしてみるのはあり)ってルール作って。
hallo world表示
↓
フォームの入力内容表示
↓
ファイルの内容を読み込んで表示
↓
フォームの内容をファイルに書き込み
↓
カウンタの作成
↓
一行掲示板の作成
↓
eコマースサイトの作成
0442nobodyさん
2005/06/17(金) 00:55:30ID:FGf+BXAB#! c:\perl\bin\perl
print "Hello Perl\n";
0443nobodyさん
2005/06/17(金) 00:56:02ID:???0444nobodyさん
2005/06/17(金) 01:00:22ID:FGf+BXAB#! c:\perl\bin\perl
print "Enter Word : ";
$word = <STDIN>;
chomp($word);
print "$word\n";
0445nobodyさん
2005/06/17(金) 01:00:53ID:???0447nobodyさん
2005/06/17(金) 01:15:33ID:???#!perl
でも動くことを知った(ActivePerl)
0448nobodyさん
2005/06/17(金) 01:21:15ID:???0449nobodyさん
2005/06/17(金) 01:25:54ID:FGf+BXAB0450nobodyさん
2005/06/17(金) 01:31:45ID:???0451nobodyさん
2005/06/17(金) 01:37:28ID:???わからないポイントが明確になって良かったじゃないか。
html周りって事なら
ttp://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/pe_kj01.htm
とか見てみれば?
0452nobodyさん
2005/06/17(金) 01:41:58ID:???0453nobodyさん
2005/06/17(金) 01:44:09ID:???0454nobodyさん
2005/06/17(金) 02:08:23ID:???%in=map{s/\+/ /g;s/%([\da-fA-F]{2})/chr hex$1/eg;$_}map{split/=/,$_,2}split/&/,$ENV{QUERY_STRING};
print<<HTML;
Content-Type: text/html
<form action=$ENV{SCRIPT_NAME}><textarea name=text rows=20 cols=40>$in{text}</textarea>
<input type=submit></form><hr>
HTML
eval$in{text},$@&&print"<pre>$@</pre>";
0455nobodyさん
2005/06/17(金) 02:48:58ID:???0456nobodyさん
2005/06/17(金) 02:53:14ID:???0457nobodyさん
2005/06/17(金) 07:32:45ID:???もし自分でコードを書くとしたら、テンポラリなハッシュにforeachでキーと値をいちいちぶち込むことになるんでしょうか。
0458nobodyさん
2005/06/17(金) 07:56:09ID:???%y = (%x , %y);
↑の書き方じゃ不満?
my %x = qw(a 1 b 2 c 3 d 4 e 5 f 6 g 7);
my %y = qw(e 01 f 02 g 03 h 04 i 05 j 06 k 07);
print join (', ', map { $_ .'=>'. $x{$_} } sort keys %x), "\n";
print join (', ', map { $_ .'=>'. $y{$_} } sort keys %y), "\n";
%y = (%x , %y);
print join (', ', map { $_ .'=>'. $y{$_} } sort keys %y), "\n";
0459nobodyさん
2005/06/17(金) 08:30:05ID:???0460nobodyさん
2005/06/17(金) 08:46:08ID:???0461nobodyさん
2005/06/17(金) 11:14:38ID:???keys, values, eachはハッシュを変更しない間は同じ順番になることが
保証されている。keysのマニュアルなど参照。
あと、ハッシュをリストコンテキストで評価したときに返るリストも
同じ順番になりそうなもんだが、そういう記述は見つけられなかった。
これはどうなんすかね?
0462nobodyさん
2005/06/17(金) 11:57:39ID:???0463nobodyさん
2005/06/17(金) 12:14:45ID:???0464nobodyさん
2005/06/17(金) 12:17:27ID:???重複するキーの値をどうするか?という問題の希ガス。
%xに%y入れるか、%yに%x入れるか。
0465nobodyさん
2005/06/17(金) 14:45:47ID:???それとも重複したら Array にしたい、とかかねえ。
0466質問
2005/06/18(土) 16:37:14ID:DZNl0XpA自分が作ろうと思っているのは、
ラジオボタンを使ったクイズ、チェックボックスを使ったクイズ、テキストボックスを使ったクイズ
なんですが、
気をつけることなどんなことでしょうか?
自分の考え(素人レベルですが・・)では、ラジオボタンとチェックボックスのほうは問題ないと思うのですが、
テキスト形式は不正な文字や引数を使われるとやばいとおもうので、正規表現でチェックするぐらいしか思いつきません.
0469nobodyさん
2005/06/19(日) 10:05:28ID:a/QQeV38$/ = "a";
chomp($data);
とすると$dataの行末のaを取り除くことができるみたいですが
aとbというような他の文字であっても取り除くようにすることはできませんかね?
PHPでいう$data = rtrim($data, "ab");みたいなことをやりたいんですが。
$/ = "ab";
chomp($data);
ではできませんでした。
0470nobodyさん
2005/06/19(日) 10:16:41ID:???$data =~ s/[ab]\z//;
http://www.kt.rim.or.jp/~kbk/perl-5.8/perlretut.html
0471nobodyさん
2005/06/19(日) 14:29:18ID:???0472nobodyさん
2005/06/19(日) 23:01:48ID:???pingの結果はどうやって得るのですか?
0473nobodyさん
2005/06/20(月) 00:43:18ID:9D61R1Akしたいのですが、うまくいきません。
if ($str =~ /[\xA1-\xFE][\xA1-\xFE]/) {
}
これですと全角全てを許容してしまいますので、何か良い方法が
ございましたらご教示いただきたい次第です。
何卒、宜しくお願いいたします。
0474nobodyさん
2005/06/20(月) 01:08:33ID:???文字コード表は検索すれば出てくるよん。
0475nobodyさん
2005/06/20(月) 01:27:43ID:???0476nobodyさん
2005/06/20(月) 01:30:53ID:???0477nobodyさん
2005/06/20(月) 01:45:43ID:???で何とかなるかと思いましたが。うまく動いてくれませんでした。
皆様、色々とご教示有難うございました。
0478nobodyさん
2005/06/20(月) 01:52:50ID:???http://search.cpan.org/~bbb/Net-Ping-2.31/
0480nobodyさん
2005/06/20(月) 04:43:55ID:???アドバイス有難うございます。
EUCで全て書いて最後にSJISにしてページを出力しているため、
化けてしまうようです。この方法は諦めました。。
文字コードの範囲と言うものが少しわかってきたのですが、まだ
まだ勉強不足なので調べまくっているところです。
貴重なアドバイス有難うございました。
0481nobodyさん
2005/06/20(月) 13:21:42ID:???アバウトだけど叩き台くらいにはなるかしら。
/\A([\xA4\xA5][\xA0-\xFF]|\xA1\xBC)+\z/
0482nobodyさん
2005/06/20(月) 16:36:58ID:???+漢字も含む文字以外を許容しないというものなん
ですね。
この場合は
if ($str !~ /^([\xA1-\xFE][\xA1-\xFE])+$/) {
}
これで問題ないのでしょうか?
0483nobodyさん
2005/06/20(月) 17:47:52ID:/wReIU3Iperlでcgiを作成しているのですが
URLでhoge.cgi?day=20050620
と指定しているのに
--------------------------------
use CGI;
my $cgi = new CGI;
my $gDay = $cgi->param('day');
--------------------------------
というように取得できません、、、
Ctrl+F5で更新すると取れるのですが
なんでなのでしょう?
何か情報をお持ちな方はお教え頂けますとありがたいです。
0484nobodyさん
2005/06/20(月) 18:47:08ID:???0485nobodyさん
2005/06/20(月) 19:04:03ID:???ありがとうございますっ
url_paramというのがあったのですね、、
不勉強でした。
どうもですっ
0487482
2005/06/20(月) 21:33:18ID:???ぐぐりまくってなんとかここまでたどりつきました。
先生方、見てくださると大変助かります。
$eucpre = qr{(?<!\x8F)};
$eucpost = qr{
(?=
(?:[\xA1-\xFE][\xA1-\xFE])* # JIS X 0208 が 0文字以上続いて
(?:[\x00-\x7F\x8E\x8F]|\z) # ASCII, SS2, SS3 または終端
)
}x;
$hiragana = '\xA4[\xA1-\xF3]'; # ぁ〜ん
$katakana = '\xA5[\xA1-\xF6]'; # ァ〜ヶ
$kanji = '[\xB0-\xFE][\xA1-\xFE]'; # 漢字(実際に割り当てのない領域も有るが問題はない)
$nobashi = '\xA1[\xBC\xBD\xC1]'; # ー−〜
if($name !~ m/^$eucpre(?:$hiragana|$katakana|$kanji|$nobashi)+$eucpost$/){}
0488nobodyさん
2005/06/20(月) 22:07:25ID:???・・・にしては最後のアスキーは何なのかわからんか・・・。
全角記号とかはどうなるのかな。
まあ、やりたいことをもちょっと詳しく。 例とかだしてくれるとわかりやすいかも。
0489nobodyさん
2005/06/20(月) 22:58:52ID:???すいません。ファイルオープンについて教えてください。
ファイルを読み書きオープンで開いて、
前の書き込みのデータを参照して処理をしたあとに追加でデータを書き込みたいのですが、
なかなかうまくいってくれません。
どなたかご教授願えませんでしょうか。
【ファイルについての仕様】
・データの追加書き込みがある
・ある程度データがたまったら削除される。
open(DOUT, "+<$log_file");
これだと、ファイルが削除されている場合エラーが出てしまいます。
open(DOUT, "+>$log_file");
open(DOUT, "+>>$log_file");
上2つだとデータが読み込めないんですけど、これは自分の書き方は悪いんでしょうか。
乱文ですけどよろしくお願いします。
0490nobodyさん
2005/06/20(月) 23:01:55ID:???http://www.kt.rim.or.jp/%7Ekbk/perl5.005/perlfaq5.html#How_come_when_I_open_the_file_re
0491nobodyさん
2005/06/20(月) 23:59:48ID:???読み書きopen
} else {
新規でopen
0492nobodyさん
2005/06/21(火) 00:03:52ID:???seek (DOUT, 0,0);
が安定じゃね?
0493489
2005/06/21(火) 00:23:19ID:???>>490
私の目的だと
sysopen(FH, $path, O_RDWR|O_CREAT) || die $!;
sysopen(FH, $path, O_RDWR|O_CREAT, 0666) || die $!;
を選択するのが妥当・・・ですよね。
>>491
なるほど、そういう書き方がありますね。
>>492
open(DOUT, "+>>$log_file");
で
@log = <DOUT>
とすると、@logで値が入ってこないんですけど、
@log = <DOUT>をする前に
seek (DOUT, 0,0);
が必要でしょうか??
また、明朝来ます。
0495482
2005/06/21(火) 02:15:58ID:???説明不足ですみません。
ひらがな + カタカナ + 漢字 + [ー〜] だけを許容したい
ずばり、そのとおりでございます。
「最後のアスキー」とは、何か漏れがあったりしますでしょうか?
0496nobodyさん
2005/06/21(火) 02:28:41ID:???最後の $eucpost の後方参照が必要なのかどうかわからないのだった。
まあいるんならいいんじゃない? それで動けば。
0497nobodyさん
2005/06/21(火) 08:45:48ID:???0498493
2005/06/21(火) 09:46:03ID:???ありがとうございます!なりました。
今までseekを使うことがなく、(<と>>だけ)
いまいち感覚がつかめませんでした。
たすかりました。
ところで、+>>でオープンした場合の書き込みは追記になるので
書き込む前に
seek(OUT, 0, 2);
をする必要はないと考えてよいでしょうか。
今のところ問題ないんですけど、やっておかないとマズイことはありますか?
0499nobodyさん
2005/06/21(火) 10:51:42ID:???use utf8;
$str='日本語';
print length $str, "\n"; # 3
foreach (split //, $str) {
print sprintf("%04X\x20", ord); # 65E5 672C 8A9E
}
utf8で書いたファイルを読み込んで同じことをやろうとするとだめです。
use utf8;
while(<>){
print length $_, "\n";
foreach (split //, $_) {
print sprintf("%04X\x20", ord);
}
}
ちなみにファイルは、以下のもので、
これはutfであります。
結果は、
~$ perl utf_test.pl utf_test.txt
32
0000 FFFD FFFD 0000 FFFD FFFD 0000 FFFD FFFD 0075 0074 0066 0000 FFFD FFFD 0000 FFFD FFFD 0000 FFFD FFFD 0000 FFFD FFFD 0000 FFFD FFFD 0000 FFFD FFFD 000D 000A
cygwinのperl5.8.5でやってます。どうしたら、日本語マルチバイト認識して
くれるんでしょう。
0500nobodyさん
2005/06/21(火) 10:57:18ID:???~$ perl utf_test1.pl utf_test.txt
32
00E3 0081 0093 00E3 0082 008C 00E3 0081 00AF 0075 0074 0066 00E3 0081 00A7 00E3 0081 0082 00E3 0082 008A 00E3 0081 00BE 00E3 0081 0099 00E3 0080 0082 000D 000A
です。よろしくお願いします。
0501nobodyさん
2005/06/21(火) 11:02:53ID:???ttp://sakaguch.com/utf2.html#noteで見つけますた。
use open ":utf8";にすれば、問題なくなりますた。
0502nobodyさん
2005/06/21(火) 11:18:14ID:???use open ":utf8";
use utf8;
while(<>){
# while(/\p{Hiragana}/g){
while(/[ぁ-ヶ]/g){
print "$&\n";
}
}
みたいにすると、結果はOKなんですが、
Wide character in print at utf_test.pl line 6, <> line 1.
Wide character in print at utf_test.pl line 6, <> line 1.
Wide character in print at utf_test.pl line 6, <> line 1.
Wide character in print at utf_test.pl line 6, <> line 1.
Wide character in print at utf_test.pl line 6, <> line 1.
Wide character in print at utf_test.pl line 6, <> line 1.
Wide character in print at utf_test.pl line 6, <> line 1.
Wide character in print at utf_test.pl line 6, <> line 1.
Wide character in print at utf_test.pl line 6, <> line 1.
これは抑止できないんですかね。
0503nobodyさん
2005/06/21(火) 11:44:02ID:???binmode STDOUT, ":utf8";
perldiag(1)のそのメッセージの説明に書いてあったわけだが。
0504nobodyさん
2005/06/21(火) 13:44:01ID:???0507nobodyさん
2005/06/21(火) 16:19:13ID:???POSTしてるからだろ。
ttp://perldoc.jp/docs/modules/CGI.pm-2.89/CGI.pod の
「POSTとURLパラメータの混合」より:
問い合わせ文字列(引数が後ろについた"?"マーク)が入ったURLへ
POSTするフォームを作成することにより、スクリプトはフォームと
同じように CGIパラメータをURLで受け取ることは可能です。param()
メソッドは、 URLの問い合わせ文字列を無視し、常にPOSTされた
フォームの内容を返します。 URLパラメータを取り出すためには
url_param()メソッドを呼び出してください。
0508nobodyさん
2005/06/21(火) 16:51:26ID:???0509505
2005/06/21(火) 17:02:14ID:???クエリ付きURLにPOSTすると
paramはPOSTされた値だけ持ってくるってこと?
勉強になった超エロイ人ありがとう!
0511nobodyさん
2005/06/21(火) 23:12:56ID:???RSSをHTMLとして出力するCGIを作成中なのですが、
my $rssfile = $cgi->url_param('rssfile');
open(my $fhin, $rssfile) or die $!;
と書くとDOCUMENT_ROOTにあるrss.xmlを出力しようとして
rssfileに/rss.xmlと指定しても出力できません。
仮想パスを物理パスに変換する必要があるのは分かるのですが、
IISのMapPathメソッドのようなものはないのでしょうか?
よろしくお願いします。
0513nobodyさん
2005/06/21(火) 23:31:31ID:???質問の仕方がまずかったですね。
それも考えましたがrssfileが//etc/passwdとかだった場合は
セキュリティ的に問題があると思ったもので。
DOCUMENT_ROOTの中か外かの判断ができればよいのですが。
0514nobodyさん
2005/06/22(水) 01:31:35ID:???だからこういう事だろ?
my $rssfile = $cgi->url_param('rssfile');
$rssfile =~ s|^[./]*|$ENV{'DOCUMENT_ROOT'}/|;
-f $rssfile || die 'No such file';
open my $fhin, '<' . $rssfile or die $!;
外から渡される文字列は全部危ないんだから、危なくないよう加工・確認
してから使うのがセオリー。問答無用で DOCUMENT_ROOT を基点にして
しまえば中か外か判断する必要はないし、DOCUMENT_ROOT の外の
階層構造をわざわざ外部に教えてあげる必要もない。DOCUMENT_ROOT の
外のファイルを読ませたいのなら、ハッシュを一個用意してそのキーを指定
させる等、パスを直接的に指定させない方法を採ればいい。
%rssfile = (index => '...', news => '...', ... );
if (defined $rssfile{$rssfile}) { ... }
0515nobodyさん
2005/06/22(水) 01:34:47ID:???chdir ($ENV{'DOCUMENT_ROOT'});
とかにして、最初の スラッシュ を削除するとか。
つーかそーゆーモジュールすでにありそうだし、それくらいのメソッドくらい自分で造れそうだがw
0517511
2005/06/22(水) 02:15:15ID:???ありがとうございました。
0518nobodyさん
2005/06/22(水) 11:32:07ID:???ttp://www.kt.rim.or.jp/%7Ekbk/perl5.005/perlfaq5.html#How_can_I_make_a_filehandle_loca
以下抜粋
>上の例では、ファイルハンドルを使う前にそれをスカラー変数に代入していました。
>これは式でもなく、ハッシュや配列の添え字でもなく単純なスカラー変数だけがprintやC<printf>、
>ダイヤモンド 演算子と一緒に使えるのです。コンパイル時にエラーになってしまうような間違いの例を挙げてみましょう:
> @fd = (*STDIN, *STDOUT, *STDERR);
> $got = <$fd[0]> # 間違い
これって、ハンドルのリファレンスをハッシュに入れることは出来ないってことなんでしょうか。
以下のソースでエラーは出ないのですが、書き込みも読み込みも動きません。
package p_file;
my %ref_handle; #クラスで使うファイルハンドルのハッシュ(複数のファイルを同時に開けるようにしたい)
sub open {
my ($id, $path, $file) = @_;
local *FILE;
$ref_handle{$id} = \*FILE; #←ここが問題?
open($ref_handle{$id} , "+>>$path$file");
}
sub read {
my ($id, $row, $begin) = @_;
my @tmp = <{$ref_handle{$id}}>;
〜以下略
sub close {
my ($id) = @_;
close($ref_handle{$id});
}
0519nobodyさん
2005/06/22(水) 11:51:25ID:???君が引用しているのは一つ下の問答のようだが、当の URL の問答に
> 複数のハンドルや無名ハンドルを作りたいのであれば、
> Symbol, FileHandle, IO::Handle といったモジュールを参照してください。
とあり、その例も書いてある。また君が引用している問答の中に、
> このアプローチは print や printf をオブジェクトメソッドの呼び出しの
> ように扱うものですが、これはダイヤモンド演算子には使えません。
> なぜなら、ダイヤモンド演算子はカンマなしの引数を取る関数ではなくて
> 本当の演算子だからです。
と書いてある。
0521nobodyさん
2005/06/22(水) 13:06:21ID:???my($sec,$min,$hour,$day,$mon,$year,$wday,$yday,$isdst) = localtime($_[0]);
return sprintf("%04d%02d%02d", $year+1900, $mon+1, $day);
なら "%04d%02d%02d" → 20050622 のようになることは理解できるのですが、
($sec,$min,$hour,$day,$mon,$year,$wday,$yday,$isdst) = localtime($new);
$day = sprintf("%.4d/%.2d/%.2d", $year+1900, $mon+1,$day);
で "%.4d/%.2d/%.2d" → 20050622 となるのはどうしてなんでしょうか。
この『.』の意味が、調べてみても手元の本には載っていなくてわからず、すっきりしません。
桁数の指定(例えば『5.2』とかの)の . ではないようですし・・・
そして、"%.4d/%.2d/%.2d" は "%04d%02d%02d" に書き換えちゃってもかまわないでしょうか?
0522nobodyさん
2005/06/22(水) 13:33:30ID:???手元の本に載ってなければマニュアルを読めばいいじゃない。
http://search.cpan.org/~nwclark/perl-5.8.7/pod/perlfunc.pod#sprintf
英語が苦手なら駱駝本を買えばいいじゃない。
>>7
> "%.4d/%.2d/%.2d" → 20050622 となるのはどうしてなんでしょうか
$year + 1900 を 4 桁の精度に丸めると 2005 、$mon + 1 を 2 桁の精度に
丸めて ( d は整数型指定子なので) 0 パディングすると 06 、$day を 2 桁
の精度に丸めると 22 、それぞれ当てはめて 2005/06/22
> "%.4d/%.2d/%.2d" は "%04d%02d%02d" に書き換えちゃってもかまわない
> でしょうか?
スラッシュが無くなっても構わないならご自由に。
0523nobodyさん
2005/06/22(水) 15:55:25ID:pDQou/2TPermission denied on server. (chmod)とでます。
その上のフォルダは変えられたのですが・・・
上記のエラーはどういう意味なんでしょうか?
0524521
2005/06/22(水) 16:18:22ID:???ありがとうございます。
URL先読んでだいぶ分かりました。
そして手元の本を見直したら、
「.」の後の数値の意味に「文字列の最大幅」というのがちゃんと載ってました。orz
「5.2」のように「.」には必ず前後に数値がないといけないと思い込んでしまってました。
>スラッシュが無くなっても構わないならご自由に。
そうですね、下はスラッシュを入れてますね。気がつかなかった・・・
これは
$day = sprintf("%04d%02d%02d", $year+1900, $mon+1,$day);
$day =~ s/(\d{4})(\d{2})(\d{2})/$1\/$2\/$3/;
とやっておこうと思います。
どうもありがとうございました。
0525nobodyさん
2005/06/22(水) 16:51:26ID:???初心者質問スレが無くなって不便だな…。代わりはここでいいんだろうか。
CGIとかPerlとか超初心者なんだけど、
http://pc8.2ch.net/test/read.cgi/php/995618200/
Perl に関係無い話は上記スレへ。
>>524
"%04d/%02d/%02d"
0527nobodyさん
2005/06/22(水) 17:53:22ID:???hint:
sprintf("%04d%02d%02d", $year, $mon, $day); #20050622
sprintf("%04d/%02d/%02d", $year, $mon, $day); #2005/06/22
sprintf("%04d年%02d月%02d日", $year, $mon, $day); #2005年06月22日
0528nobodyさん
2005/06/22(水) 18:12:51ID:???hint:
$hoge = "ほげ〜ほげ〜ほげ〜<br>お〜れ〜は%s\<br>ガ〜キだいしょ〜うっとくらあ";
$hoge = sprintf($hoge, 'ジャイアン');
0529nobodyさん
2005/06/22(水) 18:46:41ID:VvFC8JSFmy $delete_url = sprintf ("%s?choice=delete;id=%d", url (), $row->{id});
print br (), br (),
"$row->{t} $row->{status}",
" [", a ({-href => $edit_url}, "Edit"), "]",
" [", a ({-href => $delete_url}, "Delete"), "]",
br (), "\n",
"$row->{content}\n";
1行目のsprintfで文字列を指定して、出力しているのはわかります。
しかし、括弧内の意味がわかりません。変数"id"について、URLを指定しているらしい
ですが、よくわかりません。
どっかに詳しく解説している、サイトとかありませんかね?
0530nobodyさん
2005/06/22(水) 18:51:23ID:???0531524,521
2005/06/22(水) 19:10:41ID:???ええと、わざわざ後からスラッシュを入れる方式(>524)にした理由は、
配布されてるあるCGIをカスタマイズしていたら、
そのCGIには日付を取得するサブルーチン(>521の上)があって
ほとんどの部分でそのサブルーチンを利用しているのに、
一カ所だけ利用していない(>521の下)部分があって、
どうしてこの部分では利用して無いのか?他と違うデータなのか?
というのが始まりだったんです。
ちなみにそのCGIの他の箇所で「2005/06/22」形式のデータが必要な時は、
サブルーチンで「20050622」形式のデータを取得した後
s/(\d{4})(\d{2})(\d{2})/$1\/$2\/$3/;
をやってましたので、それに揃えようかと。
0532nobodyさん
2005/06/22(水) 21:23:12ID:SO7tDhegOSはRedhatなんですけど
0533nobodyさん
2005/06/22(水) 21:57:46ID:???0534nobodyさん
2005/06/23(木) 00:40:06ID:???・ID(10バイト程)を入力してもらう
・IDを受け取ったプログラムはIDを一行ごとに入力してある
ファイルを順次読み込み(読みオンリーでオープン)
該当するIDがあるかどうかチェックする。
(対象のIDは5千件程度)
というWebを作りたいんですが、読み込みオンリーで
オープンしておけば一度に10人とか同じチェック側の
プログラムを動かしてもロックかかったりしてパフォーマンス
が落ちることはない?それともプログラム中で条件式(if?)
の中で固定でチェックした方がいいのでしょうか?
0535nobodyさん
2005/06/23(木) 00:54:13ID:???0536nobodyさん
2005/06/23(木) 00:57:09ID:???■ このスレッドは過去ログ倉庫に格納されています