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

【Perl】初心者コーナー Part14

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん02/07/18 16:34ID:jemWJhH3
いらっしゃーい、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あたりを見よう。
0751nobodyさん02/08/03 21:46ID:???
>>750

そうでした。
どうすればいいのでしょうか?
0752nobodyさん02/08/03 21:54ID:???
ここでも見たらどうかね?

http://www.futomi.com/subroutine/ua.html
0753nobodyさん02/08/04 01:18ID:8/YQ8REX
始めまして。質問させていただきます。
フォームメールでローカルに有るファイルを添付させたいのですが、上手く出来ません。
送信したときにローカルファイルをサーバー上に一時ファイルでローカルファイルの
コピーを作成できないみたいなのです。
名前だけの空っぽのファイルができてそれが添付されてメールが届きます。
どうしたらファイルのコピーが作れるのでしょうか。
どなたかよろしくご教示ください。
0754nobodyさん02/08/04 01:26ID:???
Cで言うところのfscanfってPerlではなんて関数なんですか?
0755nobodyさん02/08/04 01:36ID:???
>>753
そのソースを見ないことには改善できないよ。
075675502/08/04 01:36ID:FrE7nmXK
デコード処理を行ってるつもりなのですが、
まったく反映されず、どこが悪いのかも分かりません。
ご指摘お願いします。
075775602/08/04 01:37ID:FrE7nmXK
sub decode {
if ($ENV{'REQUEST_METHOD'} eq "POST") {
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
}
else {
$buffer = $ENV{'QUERY_STRING'};
}

$i = 0;
@pairs = split(/&/,$buffer);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);

$name =~ tr/+/ /;
$name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
075875602/08/04 01:37ID:FrE7nmXK
&jcode'convert(*value,'sjis');
&jcode'convert(*name,'sjis');

$value =~ s/</</g;
$value =~ s/>/>/g;

$value =~ s/\r\n/<br>/g;
$value =~ s/\r/<br>/g;
$value =~ s/\n/<br>/g;

$value = $form{$name};

$name = $form{'name'};
$comment = $form{'comment'};

@num[$i]=$value;
$i=$i++;
}
0759nobodyさん02/08/04 01:45ID:???
あーぁ、やっちゃったな。CGIスレにリンク張ってやりたい処理と現状を書くべきなのに。
076075602/08/04 01:47ID:FrE7nmXK
>>759
知りませんでした。
スイマセン
076175302/08/04 01:55ID:8/YQ8REX
すみませんでした。
下に書いてあるふうに、ファイル名を取得して空の同名のファイルをサーバ上の
指定したフォルダに作成してるんですが、その作ったファイルの中にデータを書き
こめないんです。
どうしたら良いかご教示いただけないでしょうか。

$filename = $FORM{$tenpu};
$c_type = 'Content-Type';
@tmp = split(/\\/, $filename);
$tmpfile = pop(@tmp);

$file_path = "./mail_tmp/$tmpfile";
open(OUT, ">$file_path");
while($tmp_byte=read($filename, $buffer, 1024)) {
print OUT $buffer;
}
close(OUT);
0762nobodyさん02/08/04 02:16ID:???
>>756
&jcode'convert(*value,'sjis');
&jcode'convert(*name,'sjis');

これは必要か? サーバ環境は?
0763nobodyさん02/08/04 02:21ID:???
>>761
$file_path = "./mail_tmp/$tmpfile";

$tmpfile に値ある?
mail_tmp のパーミッションは?
076475302/08/04 02:33ID:8/YQ8REX
763さん
すみません、値というと・・・?
mail_tmpのパーミッションは777です。
0765nobodyさん02/08/04 02:35ID:???
>>763
値というと、つまり、ファイル名がちゃんと入っているの? ってこと。
076675302/08/04 02:40ID:8/YQ8REX
あ、はい。ちゃんと名前は入ってきています。
この空っぽのファイルが添付されて送られてきてしまいます。
0767nobodyさん02/08/04 02:46ID:???
>>766
>>761以前の処理ってどうなってる?
076875302/08/04 02:55ID:8/YQ8REX
761より前の処理は
if ($ENV{'REQUEST_METHOD'} eq "POST") {
read(STDIN,$buffer,$ENV{"CONTENT_LENGTH"});
}else{
$buffer = $ENV{'QUERY_STRING'};
}
@pairs = split(/&/,$buffer);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s/&/&/g;$value =~ s/"/"/g;$value =~ s/\,/,\;/g;
$FORM{$name} = $value;
}
です。
それで761の処理以降はsendmailの処理になってます。
サブジェクトや添付ファイルのエンコードとかもそこでやってます。
0769nobodyさん02/08/04 02:57ID:???
>>768
だったら、もうすでに標準入力からすべて読み込んでるわけだから当然ファイルは
空になります。
077075302/08/04 03:03ID:8/YQ8REX
そうなんですか!読んでても残ってるのかと思ってました。
もう1回やりなおしてみます。本当にありがとうございました。
0771nobodyさん02/08/04 06:22ID:???
>>752

いいもの教えてくれてありがとうございました
0772クッキーのオンオフ02/08/04 16:22ID:???
質問失礼します。
ユーザー環境でクッキーのオンオフを確認し、
クッキーオフならhidden属性を表示しないようにしたいのですが、
クッキーのオンオフをその場で見極める方法などはありますでしょうか?

自分ではヘッダ情報でクッキーを書き出してから、$ENV{'HTTP_COOKIE'}で
再取得できればクッキーオンだと確認できると思っていたのですが、
クッキーを記録したその場では$ENV{'HTTP_COOKIE'}が更新されないようで
上手くいきませんでした。

クッキー保存と読み込みを別スクリプトで行なえばいいのですが、
それだとサーバーへのアクセスも増えますし、訪問者の人の
手間も増えてしまいます。

クッキーのオンオフをその場で確認する方法、
もしくは$ENV{'HTTP_COOKIE'}の再読み込みをする方法を
ご存知な方がいらっしゃいましたら、どうかご教授ください。
よろしくお願いします。
0773apholist02/08/04 21:57ID:DUVpmc74
ActivePerl、Apache2.039でCGI動かしてるんですけど
いくつかのCGIで初期表示のあと、更新しようとすると

couldn't create child process: 22:
couldn't spawn child process:

というようなエラーが表示されます。何が原因だと
考えられますか?
0774nobodyさん02/08/04 22:01ID:???
子プロセスを作れませんでした?

UNIX専用の関数とか使ってない?
0775apholist02/08/04 22:06ID:DUVpmc74
>>774
あるかも。調べる方法ってあります?
0776apholist02/08/04 22:27ID:DUVpmc74
とりあえあう、Flockと、symlinkは外しました。
他にもありますか?
なかなかまとまったページがないっす。
0777nobodyさん02/08/04 22:29ID:???
fork とかも。
どのプラットフォームでも動くようなCGI使えや。
0778apholist02/08/04 22:49ID:DUVpmc74
>>777
難しいこと言うなぁ。簡単なことなのか?
どのプラットフォームでもっていうと、
チャット、掲示板、カウンターなどほとんどWinでは
難しいような気がするんだけど。
まあ、Winで作られたものならWinで動くんだろうけど。

とりあえず、forkチェックしてみます。
「とか」って言ってるけどなんで知ってるの?常識?
0779apholist02/08/04 23:00ID:DUVpmc74
スマソ。perlのドキュメントにありますた。

Some functions that work on Windows NT/2000 reportedly do not work or are buggy on Windows 95. An example is flock().

Certain functions don't seem to work on ActivePerl.
There are several functions that are unimplemented in the ActivePerl system. Here is a complete list of unimplemented functions:

Functions for processes and process groups
alarm(), getpgrp(), getppid(), getpriority(), setpgrp(), setpriority()

Fetching user and group info
endgrent(), endpwent(), getgrent(), getgrgid(), getgrnam(), getpwent(), getpwnam(), getpwuid(), setgrent(), setpwent()

System V interprocess communication functions
msgctl(), msgget(), msgrcv(), msgsnd(), semctl(), semget(), semop(), shmctl(), shmget(), shmread(), shmwrite()

Functions for filehandles, files, or directories
link(), symlink(), chroot()

Input and output functions
syscall()

Fetching network info
getnetbyname(), getnetbyaddr(), getnetent(), getprotoent(), getservent(), sethostent(), setnetent(), setprotoent(), setservent(), endhostent(), endnetent(), endprotoent(), endservent(), socketpair()

See the perlport and Win32 documentation pages for more information on the portability of builtin functions in ActivePerl.

だって。コピペしないほうがよかったか?
0780apholist02/08/04 23:29ID:DUVpmc74
うぉー全部チェックしたがまだ同じエラーだ…。
0781nobodyさん02/08/04 23:46ID:???
>>780
その前に、ごく簡単なCGIでもそうなるか試した?
0782apholist02/08/05 00:02ID:vCl4cucl
>>781
ごく簡単なCGIなら動きます。
掲示板も普通の?は動いたけど、megabbsスクリプトで
スレ立て後、レスを書き込もうとすると同じエラー。
0783nobodyさん02/08/05 00:12ID:???
NGワード!NGワード!w
0784nobodyさん02/08/05 00:13ID:???
>>782
じゃあ、そのmegabbsスクリプトってのがしょぼいんだろう。
0785nobodyさん02/08/05 00:17ID:mlKhZTXH
C言語
ファイルポインタを使って円の面積を計算するプログラム、教えてください。
ファイルポインタには半径1から10の数値があります。
出力結果は次のようになるようにして下さい
半径 面積
1
2
3
・
・
10
0786apholist02/08/05 00:26ID:vCl4cucl
>>783
え?ヤヴァイ?
0787apholist02/08/05 00:29ID:vCl4cucl
>>785
ネタ?厨?For文使うか一つずつ円周率3で計算すればいいんじゃない。
0788nobodyさん02/08/05 00:31ID:???
>>785
マルチはうせろ!     
0789nobodyさん02/08/05 00:40ID:???
http://pc3.2ch.net/test/read.cgi/tech/1028474590/
>>785 おめー殴らせろ
0790apholist02/08/05 00:41ID:vCl4cucl
>785
マルチだったのか。Perlとか言語の区別もつかんとは
あわれな厨だな。俺よりアフォだ。

とりあえず、うごきますた。Apache2.039が悪かったみたい。
1.326にしたら動いた。
人柱になるのはもっとスキルみがいてからにします。

ご協力感謝。
0791nobodyさん02/08/05 01:57ID:LdtViypm
アンダーバーを含む行の先頭に
hogeという文字列を追加したい場合
どう書けばいいですか
0792nobodyさん02/08/05 02:19ID:???
>>791
キーワード
正規表現 or index
0793nobodyさん02/08/05 02:21ID:???
>>791
s/(.*_.*[\x0d\x0a]*)/hoge$1/g;
0794nobodyさん02/08/05 02:21ID:???
>>772
遅レスだけど、ありません。
0795nobodyさん02/08/05 02:35ID:LdtViypm
>>792 >>793
マッチさせる文字列全体をカッコでかこめば
よかったんですね。
勉強になりました。
0796nobodyさん02/08/05 09:42ID:???
>>758
$i=$i++;
はいかんよ
$a=0;
$b=$a++;
の場合は$a=1,$b=0.
$i=0;
$i=$i++;
なら$i=1,$i=0.どっちか分からん。
0797nobodyさん02/08/05 10:21ID:???
>>791
while(<>) {
next if !/_/;
s/^/hoge/;
}

ひとつの小難しい正規表現でやるのは嫌な人用。
0798nobodyさん02/08/05 10:36ID:???
このスレを見ていると、localだとかcgi-lib.plだとかjcode.plといった記述を
よく見かけまずが、未だにperl4しか入ってないサーバばかりなんですか?
0799nobodyさん02/08/05 11:28ID:???
軽い方がいいから。
0800nobodyさん02/08/05 11:37ID:7p5l2D2K
以前こちらで教えていただいた者です。その節は大変お世話になりました。
フォームメールでローカル上のファイルを添付して送信するスクリプトを作ったのですが、
パソコンのアウトルックではちゃんと添付ファイル付きのメールが受信できるのに
gooとかのウェブメールや、シグマリオンに付いているMPメールでは上手くいきません。
なにか違いでもあるんでしょうか。
どなたかご教示いただけないでしょうか。
0801nobodyさん02/08/05 11:53ID:???
添付ファイルの扱いを間違えてるとか。
0802nobodyさん02/08/05 12:26ID:7p5l2D2K
扱いといいますと・・・?
gooでは件名、本文は正常に受信できて、添付の部分は本文にコードが書かれている状態です。
MPメールのほうは件名もiso-2022-jpと書かれていて、本文もcontent-type云々になってます。

パソコンのアウトルックで使うより、シグマリオンのMPメールで使う方が多いので困っています。
0803nobodyさん02/08/05 13:47ID:???
Content-Type: Multipart/Mixed;
となってますか。
0804nobodyさん02/08/05 14:55ID:???
一つの動作の中で2回デコード作業をしてはいけないんでしょうか。

$ENV{'QUERY_STRING'}
の内容は1回目で無くなっちゃうんでしょうか。
うまくいかないんです。
0805 02/08/05 14:59ID:???
>>804
そんなこたーないよ。コード見せてみ。
0806nobodyさん02/08/05 14:59ID:???
うまく行くといいですね   ピュア
0807nobodyさん02/08/05 16:02ID:???
>>805
全体と載せるのは無理なんで説明します。
で、実は>721でやっているのをやりたいんです。
チェックボックスの値を配列で受け取るとういのを。
#usr/bin/なんたら
$FORM = &getparam; # パラメータ取得
$mode = $FORM{ mode };
if($mode eq "") { &main; }
〜モード判定〜
else { &error("不正なアクセスです。"); }

sub getparam{ # デコードサブルーチン
 read( STDIN, $post, $ENV{ 'CONTENT_LENGTH' } );
 @data = split(/&/,$post);
 foreach $all (@data) {
 ($name,$value) = split(/=/,$all);
 $value =~ tr/+/ /;
 $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
 $value =~ s/,/,/g;
 $value =~ s/"/"/g;
 $value =~ s/</</g;
 $value =~ s/>/>/g;
 $value =~ s/\r\n|\r|\n/<br>/g;
 $value =~ s/<br</<br>/g;
 $FORM{$name} = $value;
 if($name eq "no"){
  push(@nos,$value);
 }
}
@FORM
0808nobodyさん02/08/05 16:02ID:???
続き

sub main{
foreach $hoge (@nos){
 print "$hoge";
}
}

こうやるんですけど、何も表示されないんですね。
@FORMの配列しか受け取れていないんでしょうか。
最後の値を返り値にするから。
なんで
 if($name eq "no"){
  push(@nos,$value);
 }
@nosの値を受け取るためだけのデコードルーチン作ったんですけど
それでもうまく値が返ってこないんですよね。
0809 02/08/05 16:08ID:???
>>807>>808
で、$ENV{'QUERY_STRING'} は どこ?
0810nobodyさん02/08/05 16:19ID:???
postなんで$ENV{ 'CONTENT_LENGTH' } でした。
0811 02/08/05 16:22ID:???
>>810
$ENV{ 'CONTENT_LENGTH' } でも値がなくなるこたーないよ。出力させてみ。

でも標準入力からは1度しか読み込めない。
0812nobodyさん02/08/05 16:22ID:???
POSTの場合ははSTDINから受け取るので1回受け取ったらなくなります。
0813nobodyさん02/08/05 16:25ID:???
>>807
$postの中に残っていると思われます。
0814nobodyさん02/08/05 16:29ID:???
>>807
そのソースは、記念に以下のスレにカキコしといてよ。

http://pc.2ch.net/test/read.cgi/php/1028052835/l50
0815nobodyさん02/08/05 16:54ID:???
>>814
載せておきました。
0816nobodyさん02/08/05 18:23ID:???

                   _ _     .'  , ..   ..   .'     ∧_∧
          ∧  _ - ― = ̄  ̄`:, .∴ '      ・,‘∴  , .   (    ) ←>>814
         , -'' ̄    __――=', ・,‘ r⌒>  _/ /
        /   -―  ̄ ̄   ̄"'" .   ’ | y'⌒  ⌒i
       /   ノ                 |  /  ノ |
      /  , イ )                 , ー'  /´ヾ_ノ
      /   _, \               / ,  ノ
      |  / \  `、            / / /
      j  /  ヽ  |           / / ,'
    / ノ   {  |          /  /|  |
   / /     | (_         !、_/ /   〉
  `、_〉      ー‐‐`            |_/

0817nobodyさん02/08/05 18:24ID:???
      氏ね
      ∧_∧          _ _     .'  , .. .∧_∧
     ( ´_ゝ`)   _ .- ― .= ̄  ̄`:, .∴ '     ( >>815)
    /     '' ̄      __ ヽ´=', ・,' r⌒> _/ /
   / /\   / ̄\-―  ̄ ̄   ̄"'" .   ' | y'⌒  ⌒\
 _| ̄ ̄ \ /  ヽ \_              |  /  ノ |
 \ ̄ ̄ ̄ ̄ ̄ ̄ \__)              , ー'  /´ヾ_ノ
  ||\            \          / ,  ノ
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄          / / /
  ||  || ̄ ̄ ̄ ̄ ̄ ̄ ̄||          / / ,'
  ||  ||          .||       /  /|  |
                       !、_/ /   〉
081880202/08/05 20:15ID:???
803さん、遅くなって申し訳ありませんでした。
Content-Type: Multipart/Mixed;になっています。
もしかしてアウトルックはIEみたいに多少の間違いがあっても
上手いこと動いてくれてしまうんでしょうか・・・。
0819nobodyさん02/08/05 20:16ID:???
あれ?いつからここは格闘技板になったのだ?
0820nobodyさん02/08/05 21:37ID:TC4MSFf/
2chのように上から下へ流れていく掲示板を作っているのですが
書き込んでCGI上でリロードする際に、ページの下の方を表示したいんです。

表示と書き込みのCGIを分けて
書き込み側から
<META content=0;URL="read.cgi#sita" http-equiv=refresh>
こんな感じで飛ばしてみたんですが何故か#sitaが反映されません。

何かいい方法はないでしょうか。
0821nobodyさん02/08/05 21:42ID:???
>820
書き込み後にLocationで飛ばせば?
0822nobodyさん02/08/05 21:44ID:obWCEw8Y
すいませんが、教えてほしいことがあります。

掲示板のログファイルを閲覧者からは見えなくしてCGIからだけ
読み込めるようにするにはどんなパーミッションにすればいいですか?
掲示板の削除キーが書き込んであるのが閲覧可能というのは、
やはりまずいかなと思いましてね。
いろいろ探したけどわからなかったので、知ってる方いたらお願いします。

まあ、ファイル名をわかりにくいものにする、などの方法はありますがね。
0823nobodyさん02/08/05 21:50ID:TC4MSFf/
>>821
やってみました。

print "Location:read.cgi\#sita\n\n";

こうですよね。
でもやっぱり#sitaは反映されないようです。
他に何か無いでしょうか…。
0824nobodyさん02/08/05 21:57ID:???
>822
パーミッション変えるより、拡張子を.cgiにすれば?

>823
ページの読み込みが終わるまで待ってる?
その前にどこかクリックしたりすると移動しないことがあるよ?

あと、念の為に聞いておくけど、<a name=sita></a>で失敗していたりしないよね?
0825nobodyさん02/08/05 22:06ID:TC4MSFf/
>>824

>あと、念の為に聞いておくけど、<a name=sita></a>で失敗していたりしないよね?

そのとおりでした。穴があったら入れたいです。

ありがとうございました。
0826nobodyさん02/08/05 23:12ID:???
ここ、夜になると一気に寂れるな。
みんな仕事でやってるのか。
に、してはレベルが・・・。
0827m(__)m02/08/05 23:25ID:7ewZSPim
こういうCGIないでしょうか。

コミュニティサイトをしようかと思っているのですが、
メンバー表に登録するとクッキーが焼かれ、
掲示板などに書き込む時偽りができないようにできるスクリプトありませんか?

例を出すと、
http://daichanchi.com/
で利用しているようなものです。

よろしくお願いいたします。

0828nobodyさん02/08/05 23:33ID:???
>>827
作れ。簡単だ。
0829nobodyさん02/08/05 23:58ID:???
>>828が作る頭がないに1000チョン
>>827がたたかれるに1マルク
 http://pc.2ch.net/test/read.cgi/php/1021897804/
0830nobodyさん02/08/06 00:04ID:diugRf3e
次のソースで動かしたところ、
「writing」と表示されたのにかかわらず
if文の中が実行されません。
超初心者的なミスを犯していると思いますが、なにとぞご指摘ください。

ActivePerl: 5.6.0.620
Apache 1.3.24
Windows2000 +SP2

/* 以下 プログラム */

print "「$In{mode}」";
if ($in{mode} eq 'writing'){
print "hoge";
exit;
}
0831nobodyさん02/08/06 00:06ID:???
>>830
ネタもほどほどにね。
083283002/08/06 00:07ID:diugRf3e
プログラムが見にくいのでインデントしますた。

print "「$In{mode}」";
if ($in{mode} eq 'writing'){
   print "hoge";
   exit;
}
本当は 「writing」hoge と表示して欲しいのに・・・
083383002/08/06 00:08ID:diugRf3e
>>831
ネタだと思われるようなミスなのですか(鬱)
どこがおかしいのか教えてください。
0834nobodyさん02/08/06 00:09ID:???
$In{mode} と $in{mode} はそれぞれ別の連想配列というネタ?
083583002/08/06 00:17ID:diugRf3e
うぎゃ〜、本当だ(鬱)
失礼しました〜っ

0836nobodyさん02/08/06 00:21ID:???
どこで writing が定義されてるんだろう。
083783002/08/06 00:24ID:diugRf3e
>836
writingはHTMLのフォームから渡されてきた物です。
mode=writing の時に書き込み処理をするようなBBSを
作っているのでした(笑)
こんな単純なことで3時間を費やした俺って一体(鬱)
0838nobodyさん02/08/06 06:46ID:???
>>10
氏ね
0839 ◆JAPH9PWA 02/08/06 09:22ID:???
>>837
そんなキミに-wスイッチとuse strict;をお勧めするよ。
慣れるまでちょっと時間は掛かるけど、
タイポによるつまらないバグが激減すること間違いなし!
0840art02/08/06 10:10ID:a25IbhtN
投稿ごとにファイルが生成される掲示板を作っています。
1.txt、2.txt・・という具合にファイルを生成したいんですが、

(1)テキストが保存されているディレクトリ内のファイルの数を調べ$prev内に代入
(2)*.txtの*をファイル数を$prev + 1にする。
(3)「($prev+1).dat」という名のファイルにする

という考え方でいいのでしょうか?
もし合っていればどういう風に書くかアドバイスして頂きたいのですが・・。
0841nobodyさん02/08/06 10:19ID:???
>840
ナンバーを保存する別ファイルを作る。
0842nobodyさん02/08/06 10:29ID:???
よけいなお世話だけど、投稿削除とか前の方からどんどん削除したいとき大変よ?
0843nobodyさん02/08/06 10:29ID:???
サブルーチンの返り値が複数欲しい時はどうすればいいんですか。
084484302/08/06 10:30ID:???
配列が二つ欲しいです.
@hogeと@hage
これをさらに一つの配列にするしかないですか?
0845nobodyさん02/08/06 10:36ID:???
>>843
普通にリストで。 
return ($a,$b);

($x,$y) = &hoge();


>>844
リファレンス
0846リファレンスを返す02/08/06 10:38ID:???
sub foo{my (@hoge,@hage);return(\@hoge,\@hage);}
my ($hageR,$hogeR)=foo;
0847art02/08/06 10:42ID:a25IbhtN
>>841
ナンバーを保存する別ファイルか・・
どうやるのですか
0848nobodyさん02/08/06 10:52ID:???
なめてるのか?

open(FIL,"a.txt");
$a = <FIL>;
close(FIL);
open(FIL,">a.txt");
print FIL ++$a;
close(FIL);
0849nobodyさん02/08/06 10:56ID:???
いらっしゃーい、Perlの「コーディング」で困ってる人のスレです。

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

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

0850art02/08/06 11:03ID:a25IbhtN
>>848
なめてないよ。

そうじゃなくて、まずファイル生成する時にどうやってファイル名を
1.txt、2.txt、3.txt・・と増やして作ることが出来るかってこと。
■ このスレッドは過去ログ倉庫に格納されています