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

【Perl】初心者コーナー Part16

■ このスレッドは過去ログ倉庫に格納されています
00013PIO ◆3pIoOHKo 02/09/15 15:11ID:???
いらっしゃーい、Perlの「コーディング」で困ってる人のスレです。

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

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

CGIだけど、なんか質問ある? Part 6 (その2)
http://pc.2ch.net/test/read.cgi/php/1025930486/
参考書籍の話題は【【Perl,CGI】参考書籍 第2版】
http://pc.2ch.net/test/read.cgi/php/988809842/
その他の雑多な話題は、【CGIに依存しないPerlの話題一般】
http://pc.2ch.net/test/read.cgi/php/991313362/
スクリプトの改造依頼は 【スクリプト改造工房 Part4】
http://pc.2ch.net/test/read.cgi/php/1012839651/

過去ログ、その他の役立ち情報は>>2-10あたりを見よう。
0558nobodyさん02/10/01 14:58ID:???
>>552
>>481

殊にネットワーク関係は中途半端なことしてると
よそ様に迷惑かけまくるから、
基礎をみっちり勉強してからトライしてね。
055954402/10/01 15:11ID:???
>>551
そうなんですね。
レスありがとうございました。
早速拾ってみます。
0560nobodyさん02/10/01 15:26ID:???
>>557
LWPのドキュメント読みましょう
0561nobodyさん02/10/01 15:41ID:???
>>558
まったくそうですねすいません、
ところでinet_atonにはホスト名をいれるより
直接IPを入れたほうが処理は早いですよね?
0562nobodyさん02/10/01 16:18ID:???
ファイルアップローダーのスクリプトでは、
ファイルの受け取りにcgi-lib.plというのを使ってるみたいなんですけど
それを使わないと無理なんでしょうか。
あと、use CGIも無しで。

use CGIを使った場合って
read( STDIN, $post, $ENV{ 'CONTENT_LENGTH' } );
で受け取るのが無効になってしまいますか?
hiddenの受け取りにread( STDIN, $post, $ENV{ 'CONTENT_LENGTH' } );を使って
ファイルの受け取りに$file = $query->parama('file);
をやったらhiddenが受け取れませんでしたので・・・。
0563nobodyさん02/10/01 16:52ID:???
>>562
use CGI; か read か、どっちか1つにしませう。。。
056455202/10/01 17:01ID:???
本を見たらWebブラウザのスクリプトを作るという項目がありました。
これが使えそうな気がします。

# Webブラウザスクリプト
# browser.pl

# モジュールの仕様宣言
use IO::Socket;

# URLを入力
print "URLを指定してください。:";
$url = <STDIN>;

# URLをホスト名とファイルパスに分割
chomp($url);
if($url =~ /http:\/\/([^\/]+)(\/.*)/){
$host = $1;
$file = $2;
}else{
die "そのURLには対応していません。\n";
}
056555202/10/01 17:02ID:???
(続き)
# ソケットオブジェクト作成
$client_socket = new IO::Socket::INET(
PeerAddr => $host,
PeerPort => 'http',
Proto => 'tcp',
Timeout => '5');
unless($client_socket){
print "Socket Error:$!\n";
}
# 入力をサーバーに送信
print "$host $file" . "\n";
print $client_socket "GET $file HTTP/1.0\n\n";

open (DATA, ">>data.html") || &error("開けません。");
# 出力を取得し、表示(複数行が帰ってくるので、取り終わるまでループ)
while($receive = <$cilent_socket>){
print $receive;
}
close(DATA);
# ソケットを閉じる
$client_socket->close();

これが全文です。ですが動きますがhtmlソースが出てきません。どこか間違っていますか。
056655202/10/01 17:03ID:???
ちなみに、インターネットにつながるパソコンで
コマンド プロンプトから試しました。
0567nobodyさん02/10/01 17:03ID:???
print $receive;
0568nobodyさん02/10/01 17:21ID:???
>>552
LWPは使えんの?IO::Socketでも別にかまわんけど。

>htmlソースが出てきません。
data.htmlに出力されているんじゃないかと思うが、
ソース見ると開けて閉じてるだけかよ。
056955202/10/01 19:00ID:ydYlCK0m
すいません、これは間違いです。
open (DATA, ">>data.html") || &error("開けません。");
# 出力を取得し、表示(複数行が帰ってくるので、取り終わるまでループ)
while($receive = <$cilent_socket>){
print $receive;
}
close(DATA);
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
# 出力を取得し、表示(複数行が帰ってくるので、取り終わるまでループ)
while($receive = <$cilent_socket>){
print $receive;
}
実際はこうやって実験しました。
指定されたhtmlのソースが表示されていくはずなんですけどね・・・。
0570nobodyさん02/10/01 22:01ID:???
>>569
unless($client_socket){
print "Socket Error:$!\n";
}
$client_socket->autoflush(1); # これ追加
# 入力をサーバーに送信
...

でどうよ?

while($receive = <$cilent_socket>)
これは綴り間違い?
057155202/10/01 22:50ID:ydYlCK0m
>>570
すごい!出来ました。
下の文がはじめに付いてくるんですがこれって自動で取ったり出来ないんでしょうか。
HTTP/1.1 200 OK
Server: Microsoft-IIS/4.0
Date: Tue, 01 Oct 2002 22:34:16 GMT
Connection: Keep-Alive
Content-Length: 39683
Content-Type: text/html
Set-Cookie: inkid=n92b0EDMgACIgMEZL2zSjaAAVvoH; expires=Wed, 01-Dec-2010 00:00:00 GMT; domain=goo.ne.jp; path=/
Set-Cookie: ASPSESSIONIDGGGQQGED=MMBNNELBNKGNJBKCPGNLGLCG; path=/
Cache-control: private

あと、ローカルではうまくいったんですけど、サーバーにアップしたら、
Your script produced this error: Can't locate IO/Socket.pm in @INC (@INC contains: .) at ./aaa.cgi line 5. BEGIN failed--compilation aborted at ./aaa.cgi line 5.
という風に「use IO::Socket;」の行でエラーが出てしまいました。
0572ヽ( ゚Д゚)丿 ◆1ZwOwwBE 02/10/01 23:40ID:???
>>571
もうなにからなにまで全然だめみたいだから
ちゃんと本かってある程度勉強したほうがいいよ。

まず、IO::Socketはレンタルサーバーに入ってるのはまれだろ
よくてSocket.pm
つかえても制限ありとかそんなもんだ。

0573ヽ( ゚Д゚)丿 ◆1ZwOwwBE 02/10/01 23:43ID:???
>>下の文がはじめに付いてくるんですがこれって自動で取ったり出来ないんでしょうか。
こんな感じのをいれる

if(/\r\n/){
next;
}
s/\r\n//o;
0574nobodyさん02/10/02 00:06ID:???
現在「」人の人がこのHPを訪れています・・・

↑のようなことを表示できるようにするCGIってありますか?
0575nobodyさん02/10/02 00:09ID:???
>>574
>>404
057657402/10/02 00:34ID:???
>>575
申し訳ない。出直します。
0577nobodyさん02/10/02 01:29ID:???
すんげー遅レスうだけども。

>>488
>っていうかこれは相手サーバに渡す物だから、
>自分の環境がWinかどうかは関係無いんじゃないんですか?
ファイルハンドルが「テキストモード」の時,"\r\n"は
Winだと, 0x0D 0x0D 0x0A に
Unix系だと 0x0D 0x0A になる
っつーことで。
0578nobodyさん02/10/02 12:31ID:6nY1Hcfp
日付とか整形する時って、一桁の場合頭に0を補完するじゃないですか
その場合

$mon = sprintf("%02d",$mon);

と書くのと

$mon = "0$mon" if ($mon < 10);

と書くの

どっちがいいと思いますか?
何か二極端になってるような気がして、、、自分は前者です。
0579nobodyさん02/10/02 12:42ID:???
>578
>>20-51
0580nobodyさん02/10/02 12:44ID:???
>>578
なら前者でよろしいじゃん
後者は年月日時分秒全部書くとかなり長いし
後者の方が速そうだけどほとんど変わりますまい
0581nobodyさん02/10/02 13:01ID:???
# 入力をサーバーに送信
#print "HOST:$host\n";
#print "FILE:$file\n";
print $client_socket "GET $file HTTP/1.0\n\n";
これだと単純に$fileで指定されたファイルが返ってくるんですけど、
$fileがcgiだった場合、例えば掲示板とかの場合に、
掲示板内の投稿内容を入力する<input type="text" name="message">
の値もサーバーに送ることってできますか?掲示板のformのmethodはpostです。
結果的に投稿後のhtmlが返ってくるようにしたいんです。
0582nobodyさん02/10/02 13:08ID:6nY1Hcfp
こんな感じにしますた。
($mon,$mday,$hour,$min,$sec) = (split(/,/,sprintf "%02d,%02d,%02d,%02d,%02d",$mon,$mday,$hour,$min,$sec));
0583nobodyさん02/10/02 13:18ID:???
>>582
sprintf使う気マンマンならなんも問題はないんじゃ。。
ちなみに月は$mon+1じゃなきゃずれるんじゃなかったっけか
0584578 , 58202/10/02 13:40ID:6nY1Hcfp
>>583
お、忘れてた。サンクス。
0585nobodyさん02/10/02 15:15ID:JLnBuPbJ
質問フォーマット

1:RS-232Cに繋がったモデムに、ATコマンドを送ってリザルトを受け取りたい
2:googleを「perl RS-232C」で調べてみた
3:そうした事例がでて来ない

perlを使って、RS-232C通信は出来ないでしょうか?
簡単なATコマンドを送って、結果を見るだけなのですが、minicomで手打ち
は面倒くさいので、自動化したいのです。

でも、googleで事例が出ないので、もしかして、perlではRS-232C制御は
出来ないのでしょうか?

もし可能なら、組み込む必要のあるpmや、スクリプト例など教えてください。

環境は、RedHat Linux 7.3
perlのバージョンは、5.6.1です。
0586nobodyさん02/10/02 15:27ID:???
?
ATコマンド打つにはpppdがいるだろ
Perlだけじゃむりだ
058758502/10/02 15:39ID:JLnBuPbJ
>>586

pppdというのと組み合わせるんですか?
今は、minicom -s から手打ちして、結果を見ています。

出来たら、自動でAT打って、返ってきた結果でif分岐して、おかしいときだけ
メールとかで知らせるという風にしたいんですよね。

まず、pppdというのをgoogleしに行って来ます。

何か過不足あったら、教えてください。
0588nobodyさん02/10/02 16:24ID:???
>>587
Linuxなら入ってるはずだよ。
0589578 , 58202/10/02 17:30ID:6nY1Hcfp
さらに質問させて下さい。

\$scalar とか \%hash とか、リファレンス参照ですよね

時々見る *scalar とかは一体何者なんでしょうか

おそらくリファレンスと同じようなもんだと思うんですが
いまいち挙動がつかめません。
059058502/10/02 17:37ID:JLnBuPbJ
>>588

あ、ほんとですね。/usr/sbin/pppdでありました。
さて、これをどうperlから呼んで、任意のATコマンドを出力させるのか、
調べてみなくてわ。

ただ、googleであたったところ、pppdってどうもインターンット接続のソフト
みたいなんですけど?
0591nobodyさん02/10/02 17:50ID:???
>>pppdってどうもインターンット接続のソフトで
ATコマンドも打てるんじゃ!ぼけぇ!
Linuxさわったのはじめてでperlも分らんようなら帰れ!
どうせ厨だろ。/dev とかわからんだろ
おとなしくじーーーーーーーーーーーっくりしらべてから来い!
0592nobodyさん02/10/02 18:06ID:???
>>591
やっぱり上級者になるとなんでも言いたい放題でかっこいいですね。
059358502/10/02 18:09ID:JLnBuPbJ
>>591

はは、いや、Linux/perl、1年くらい使ってるんですよ(笑)

ただねぇ、ルータが最初からあって、接続はLANでって環境でインターネット
に入ったもんで、ATコマンドって、つい最近まで、使ったことも見たことも無
かったのよん。
#Windowsも「ダイヤルアップなんたら」というの、使ったことまったくない。

だから困ってるのさ。

0594nobodyさん02/10/02 18:31ID:???
> Linux/perl、1年くらい使ってるんですよ(笑)

おめでたい香具師だな。
0595nobodyさん02/10/02 18:34ID:???
>594
だから初心者なんだろ(w
0596nobodyさん02/10/02 20:11ID:???
>>581
> print $client_socket "GET $file HTTP/1.0\n\n";
この行の GET を POST にすることを気付かなかったのなら、
まず Socket と HTTP について勉強しる。

>>582
$_ = sprintf '%02d', $_ for ($mon,$mday,$hour,$min,$sec);
こう書いておけば、変数が増えても
一箇所書き換えるだけで済む。

>>585
「Linux perl シリアル通信」辺りでググってみてはどうか?

>>589
* は型グロブ。黒豹本 (O'REILLY「実用 Perl プログラミング」)
の三章に、実際の使用例と共に詳しく解説されている。
0597nobodyさん02/10/02 20:56ID:???
あるディレクトリに
Sheet1.csv 〜 Sheet10.csvまで10枚のファイルがあります。
ファイルのそれぞれの1〜9行目、1列目〜4列目
を個々に加算してresult_11.cvs ファイルの1〜9行目、1列目〜4列目
に和を挿入したいのですが、awkとbc とpaste を使っていますが、
perlなら一発で出来そうです。何かいいアイディアはありませぬか?

% cat sum.array.awk
BEGIN {
OFS=FS=","
}
{
for (i=1;i<=4;i++)
sum[FNR,i]+=$i
}
END {
for (r=1;r<=9;r++)
print sum[r,1]"\n"sum[r,2]"\n"sum[r,3]"\n"sum[r,4]
}

059859702/10/02 20:57ID:???
% awk -f sum.array.awk Sheet1.csv|sed -e 's/$/+/'>ac1.dat
% awk -f sum.array.awk Sheet2.csv|sed -e 's/$/+/'>ac2.dat
% paste ac1.dat ac2.dat
55+ 59+
77+ 81+
36+ 40+
66+ 70+
111+ 115+
3+ 7+
39+ 43+
77+ 81+
(略)
059959702/10/02 21:03ID:???
最後にTABを消して、bcに食わせるのですが、mkfifoした後、
perlのwhile(<FIFO>){ほにゃらら;}とかで処理できないかなー。
0600nobodyさん02/10/02 22:29ID:???
bcの使い方とかわからんけど
データは

4,5,44124,1324\n
45,2345,44124,1324\n
45,2345,44124,1324\n

こんな感じで

324424124\n
424148124\n
423213131\n
(適当)
↑みたいににしたいってことですか?
0601nobodyさん02/10/02 22:55ID:77XrC79c
CGIとかを動くかどうか試したいんですがまだHPスペースの承諾メールがきてなく確認できません
そこで質問なんですが無料のサーバー?ソフトみたいなのは無いんでしょうか?
0602597 02/10/02 22:57ID:???
cat Sheet1.csv
1,33,55,77,99,121,143,165
2,36,66,111,222,223,147,225
3,39,77,145,345,346,151,348
4,42,88,179,468,469,155,471
5,45,99,213,591,592,159,594
6,48,110,247,714,715,163,717
みたいなファイルが10枚あって、
ココの行列ごとに和をとって11番目のファイルに出力したい、ということです。
串刺し、といったイメージでファイルを横断して加算を取るということです。
この部分だけ、excelに頼っているのですが、
他の計算が全てUnix上なので、この計算もperlなどで行いたいなと。
0603nobodyさん02/10/02 23:09ID:???
601 :nobodyさん :02/10/02 22:55 ID:77XrC79c

=commentout
CGIとかを動くかどうか試したいんですがまだHPスペースの承諾メールがきてなく確認できません
そこで質問なんですが無料のサーバー?ソフトみたいなのは無いんでしょうか?
=cut

次。
0604nobodyさん02/10/03 00:07ID:???
commentout の意味わかってる人?
0605nobodyさん02/10/03 00:15ID:???
>>596
>$_ = sprintf '%02d', $_ for ($mon,$mday,$hour,$min,$sec);

( ´,_ゝ`) プッ ネタかよ
0606578 , 58202/10/03 01:38ID:uOd1wswN
*が型グロブで、どんなものかも分かったのですが
どんな機会に使うのでしょうか??

いまいちリファレンスより速度的に早いとか
何か利点があるのでしょうか??
0607nobodyさん02/10/03 02:17ID:???
>>602
 そのくらいのデータ量だったら、値を全て読み込んでから
処理しちゃっても大丈夫/楽じゃないですかね。

use constant FIRSTFILENUM => 1;
use constant LASTFILENUM => 10;

my @data;    #$data[ファイル名の数字部分]->[列][行]
for (my $fileno = FIRSTFILENUM; $fileno <= LASTFILENUM ; $fileno++){
    open (FILE, "Sheet$fileno\.csv") or die;
    for(my $n = 0; <FILE>; $n++){
        chomp;
        $data[$fileno]->[$n] = [split (/,/)]
        };
    close (FILE) or die;
}

 こんな感じで、データを一気に読み込んで、あとは適当に
ループを回して足すなり引くなりするというのはどうでしょ?

my $sum;    #各ファイルの列ごとの和
for (my $col = 0;$col < 6; $col++){
    for (my $fileno = 1; $fileno <= 10; $fileno++){
        for(my $row = 0;$row < 8; $row++){
            $sum += $data[$fileno]->[$col][$row];
        }
    }
    print $col + 1 . ":$sum\n";
}

たとえばこんな感じで。
060860202/10/03 02:52ID:l9L39VMS
>>602
>そのくらいのデータ量だったら、値を全て読み込んでから
よく判らないのですが、2000行400列ぐらいに集めてしまった巨大ファイルも
処理する場合、
512Mのメモリー積んでれば(OSはLinux)大丈夫でしょうか?
今までは、excelに食わせるために一旦小さいファイルに分けるなどしてましたが。
一気にできるとなるとどれくらいのファイルまでならOKなのでしょうか?
今、手元の一番大きいので、7.3Mだから大丈夫なのかな?

060960202/10/03 03:05ID:l9L39VMS
つまり、7.3Mぐらいなら、50枚くらいまでならOKという意味です。
50枚も逝かないと思うけど……。けど、こういう場合、単純計算で512Mのうち
どれくらい残しておけばいいのかな。
0610 ◆hMJAPH9PWA 02/10/03 09:46ID:???
>>606
基本的に表立ってはあまり使わない。
普通は、ファイルハンドルを使うときと、エイリアスを作成する時くらいじゃないかな。
0611nobodyさん02/10/03 10:16ID:HWMUanwi
CPANの使い方の日本語の解説がないか?
本 or サイト どっちでも可
0612nobodyさん02/10/03 10:42ID:???
今はshift-jisでperlを書いてるんですけど、eucで書いた方がいいんでしょうか。
どっちでもいいんでしょうか。時と場合で使い分けるんでしょうか。
0613nobodyさん02/10/03 10:54ID:xHS0Gcl+
>>612
シフトジスの場合に文字化けエラーに気をつければ
どっちでもいい
0614nobodyさん02/10/03 11:16ID:Co/qm2Ti
初歩的なことで申し訳ないんですけど、
配列名の中に変数をエラーってしまいます。

#!/usr/bin/perl

$num =0;
@ary = qw(a b c d e f);

foreach (@ary) {
push (@new_ary_$num,$_);
++$num;
}

この場合、
aを@new_ary_0
bを@new_ary_1
・
・
fを@new_ary_5

に入れたいのですが、push (@new_ary_$num,$_);で
引っ掛かってしまいます。
@new_ary_${num}など、いろいろ試してみたのですが
どうにもだめでした・・。
配列名の中に変数は使えないのでしょうか?

宜しくお願いします。
0615nobodyさん02/10/03 11:18ID:???
訂正
配列名の中に変数をエラーってしまいます。
↓
配列名の中に変数を使うとエラーってしまいます。

でした。すんません
0616nobodyさん02/10/03 11:18ID:???
# フォーム
<form action="aaa.cgi" method="post"><input type="text" name="text" value="aiueo"></form>
-----------------
# aaa.cgi
$post_name = "text";
$post_value = $FORM{text};
print "Location: http://xxx.yyy.zzz/hoge.cgi\n\n";
---------------
こうやってhoge.cgiへ自ら用意したpostデータ(name=text value=あらかじめ用意した値)
を送り付けたいのですが可能ですか?
getの時は引数を付ければいいだけですが・・・。
0617578 , 58202/10/03 11:21ID:v6OPXcCd
>>610
ご回答ありがとうございます、胸のつっかえが取れました。
0618nobodyさん02/10/03 12:46ID:???
>597
ところで UNIX板のシェル、オークスレにまったく同じ質問があるように見えるのは気のせいですか?
いや,マルチだとは思わないんだけどね,それぞれのやり方が知りたいのかもしれないし
061958102/10/03 13:38ID:???
print $client_socket "POST index.html HTTP/1.0\n\n";

こうしたらおかしくないですか?
postのデータはどうやって送ってるんですか?
0620nobodyさん02/10/03 13:48ID:???
>>614
push (@{"new_ary_$num"},$_);

>>616
いったん全部hiddenにしたform出力してjavascriptで勝手にsubmitするとかダメ?
0621nobodyさん02/10/03 14:44ID:V3RvumoZ
バッファをフラッシュするってどういう意味ですか?
0622nobodyさん02/10/03 14:53ID:???
$hoge = shift || 'あ';

これってなにしてるんですか?ただの代入?
0623nobodyさん02/10/03 15:59ID:l7EfCAGl
>>622
@_にデータがあればその先頭のデータを代入。なければ'あ'を代入。
0624n02/10/03 16:08ID:KXoffugq
http://yahooo.s2.x-beat.com/
0625nobodyさん02/10/03 16:54ID:???
perlでの8とか9って特別な数字か何かなの?
062660702/10/03 17:36ID:???
>>609
 あー、ファイルでかいですかー。
 じゃあ一行ずつ読み込んで処理してテンポラリに書き出すのは?

 たとえば、Sheet1.csvからSheet10.csvの同位置の要素を串刺しに
足していくスクリプトだとこんな感じでどうでしょ。

062760702/10/03 17:38ID:???
use strict;
use File::Copy;

copy ('Sheet1.csv', 'Result.csv');

for (my $fileno = 2; $fileno <= 10 ; $fileno++){
    open (DATA, "Sheet$fileno\.csv") or die;
    open (SUM, '<Result.csv' ) or die;
    open (TEMP, '>TEMP') or die;
    
    while(<DATA>){
        my @data = split(/,/);
        my @sum = split(/,/, <SUM>);
        
        my @result = map {$data[$_] + $sum[$_]} 0..$#data;

        print TEMP join (',', @result) . "\n";
    }

    close (TEMP) or die;
    close (SUM) or die;
    close (DATA) or die;
    
    unlink ('Result.csv');
    rename ('TEMP', 'Result.csv');

}

 うーん。もっとカコイイ方法ないかなあ。

 あ、それと、607の書き込みの下のコード、間違ってました。ゴメン
0628ふとした疑問02/10/03 18:28ID:v6OPXcCd
サブルーチン呼び出す時って
&subname();
の形ですよね?

で、普段は&は省略して書いてるんですが
&が無いと動かないサブルーチンとかも在ってチンプンカンプンです

そもそも&はどんな場合に必須となるのでしょうか?
0629nobodyさん02/10/03 18:54ID:bjQ5Yi4R
PerlからWin32::APIモジュールを使うとき、
RegisterClassExに渡すwndClassEx構造体の中で
ウィンドウプロシージャの指定はどうすればいいんでしょう?
Perlでユーザ関数(サブルーチン)を作ってそのリファレンスを渡せばいいのでしょうか?
0630nobodyさん02/10/03 19:11ID:???
× hogehoge
○ hogehoge()

× \hogehoge
× \hogehoge()
○ \&hogehoge
0631nobodyさん02/10/03 19:13ID:???
>>628
( )付きなら同じだよ。
&sub
と( )無しで呼ぶと&sub(@_)と同じ
0632nobodyさん02/10/03 19:54ID:FetdaLGe
>>628
省略記述って言うんだけど、実際の所省略しないほうが手っ取り早くていいぞ。
省略が通るかどうかは、他に前方宣言されているとかそうゆうのも関係ある。
ちゃんと正式に書けばどんな時も困った事にならない。
063362802/10/03 20:57ID:v6OPXcCd
>>630-632
ありがとうございました
自分には省略せずに書くのが見やすいし迷わなくていいかも。

0634nobodyさん02/10/03 21:10ID:???
ム板のPerl質問箱がrubyキティの荒しに遭って危うい状況。
0635nobodyさん02/10/03 21:31ID:Wit0Sk8M
Win2k Apacheで
print TXT "\n";
としただけなのに
TXTファイルの改行コードがCRCFになっています。なぜ?
0636nobodyさん02/10/03 21:41ID:???
>>635
Windowsの改行がCRLFだから、改行を表す\nもCRLF
0637nobodyさん02/10/03 21:49ID:???
>>636すみませんつまっていました。ありがとうございます。
\nだけprintする方法ありましたらどうぞ教えてください。
0638nobodyさん02/10/03 21:50ID:???
ごめんなさい。CFだけ記述する方法です。
0639nobodyさん02/10/03 21:51ID:???
CF???
0640nobodyさん02/10/03 21:52ID:???
だから、またrubyきちだよ。
0641nobodyさん02/10/03 21:53ID:???
>>639UNIXの改行。
0642nobodyさん02/10/03 21:54ID:???
LFでは?
0643nobodyさん02/10/03 21:57ID:???
>>642\r\nがCRCFと思っています。間違いみたいね。LFをprintしたいですが。\x0Aでも2バイトになるし。
0644nobodyさん02/10/03 21:58ID:???
出力する前に binmode(TXT);
0645nobodyさん02/10/03 21:58ID:???
CR(きゃりっじ・りたーん)
LF(らいん・ふぃーど)
0646nobodyさん02/10/03 21:59ID:???
>>644(TXT)/ やってみます。ありがとうございます。
0647nobodyさん02/10/03 22:34ID:G7kyuSYC
CPANの使い方の日本語の解説がないか?
本 or サイト どっちでも可
0648nobodyさん02/10/03 22:44ID:???
あの程度の規模のサイトに解説が必要か?
0649nobodyさん02/10/03 22:58ID:???
>>647 CPANってモジュールのこと?
それともサイトのこと?
065061402/10/03 23:17ID:???
>>620
できました!
どうもありがとうございました。
0651nobodyさん02/10/04 00:00ID:???
PerlってCとBASICのいいところを合わせたような
感じの言語だね。
0652nobodyさん02/10/04 00:09ID:???
つまり、古典と糞を合わせた最低言語ということだ。
0653nobodyさん02/10/04 01:36ID:???
#1
for($i = 0; $i < 200000; $i++) {
 $array1[$i] = 1;
}

#2
$#array2 = 199999;
for($i = 0; $i < 200000; $i++) {
 $array2[$i] = 1;
}

先に領域の確保をしておく#2の方が速いと思ったら#1の方が速くなった。なぜ?
0654 02/10/04 01:39ID:???
これってなぜ保存できないの?


http://www.need4xxx.net/asian/hamedori/data/099/dir/index.html



おんなじのコピーしてつくろうとしたけど不可能
0655nobodyさん02/10/04 03:12ID:???
>>654
ブラクラ
0656nobodyさん02/10/04 08:04ID:iu1Ymefg
「Perlについての質問箱」がruby基地外によって潰されました。
心ある人は、rubyスレにお礼参りしてください。
0657 ◆hMJAPH9PWA 02/10/04 09:10ID:???
なんかPerlerとRubyistを争わせたい人がいるなあ。
■ このスレッドは過去ログ倉庫に格納されています