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

Perl コーディング初心者質問コーナー Part26

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん03/07/24 19:48ID:???
いらっしゃーい、Perlのコーディングで困ってる人のスレです。

【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。

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

最低でも1と3が無いと誰も答えられないよ。
ソース貼る時は、全角スペースでインデント忘れずに。
良い回答は良い質問から。一緒に勉強しましょう。

関連スレ
【Perl上級者コーナーPart01】
http://pc2.2ch.net/test/read.cgi/php/1024741312/
CGI: Common Gateway Interface part 11
http://pc2.2ch.net/test/read.cgi/php/1055597189/
【Perl,CGI】参考書籍 第三版
http://pc2.2ch.net/test/read.cgi/php/1030209573/
【 スクリプト改造工房 PART 6 】
http://pc2.2ch.net/test/read.cgi/php/1047806915/

過去ログやお勧めサイトは >>2-10
0449nobodyさん03/08/03 22:10ID:???
>>447
>>1を読まないのが問題。
2度と来るなとは言わんが、>>1を1日10回読んで1週間後にまた質問しに来い。
今日はもう書き込むな。
0450nobodyさん03/08/04 12:13ID:???
>>449
そういうの辞めて無視し。いい加減バカかと。
0451nobodyさん03/08/04 12:20ID:???
>>450
なら、文句をいわずに、お前が回答しろ。
0452nobodyさん03/08/04 13:19ID:???
そういうの辞めて無視し。いい加減バカかと。
0453nobodyさん03/08/04 13:53ID:???
なら、文句をいわずに、お前が回答しろ。
0454nobodyさん03/08/04 14:08ID:???
コピペやめれ。無視しとき。
0455nobodyさん03/08/04 15:43ID:???
いらっしゃーい、Perlの「コーディング」で困ってる人のスレです。

【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
また過去ログも情報の宝庫です。よく探してみましょうね。

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

最低でも1と3が無いと誰も答えられないよ。
ソース貼る時は、全角スペースでインデント忘れずに。
良い回答は良い質問から。一緒に勉強しましょう。

【よくある勘違い】
CGI ≠ Perl です。
判らなければまずはググってみましょう。> http://www.google.co.jp/

【初心者の扱い】
「初心者」だからといっても容赦しませんことよ。ふふふ。
0456nobodyさん03/08/04 15:48ID:???
Perlのソース同士を比べて書き換えたりしたいのですが(差分を取ったりしたいです)、
差分取るソフトで使いやすくて便利なソフト教えてください。
早速、落としてこれから使っていこうと思いますので。
0457nobodyさん03/08/04 15:54ID:???
>>456
diff
0458nobodyさん03/08/04 16:03ID:???
>>457
レスありがとう。
早速HPnなるもいったんですが、分からない…。
0459nobodyさん03/08/04 16:33ID:???
>>438
ソースはここから落とせるよ。
http://www.perl.com/pub/a/language/info/software.html
0460nobodyさん03/08/04 16:47ID:???
diff,patchをうまく使えば効率が良くなるんだが、
>>456の想像しているものとは違う気がする。
気の利いたエディタなら普通についてそうだし、
Windows用のを探しているなら「Windiff」で腐るほどヒットする。
# つか捻りの無いソフト名多すぎ:)
046145703/08/04 16:48ID:???
>>460
# つか捻りの無いソフト名多すぎ:)
だな。俺もさっき調べてたけどWindiffって名前で色んな奴があるよな。
Cygwin入れてるから別にいいんだけどな。
0462nobodyさん03/08/04 20:00ID:IP9MFG+G
>>447
>>449
パソコン買い替え中で正確な記述が調べられないのれす。
でも争いが起きているとは驚きますた。
0463nobodyさん03/08/04 20:02ID:???
>>448
Content-Encoding
これでだと思いますが変わらなかったのですが
鯖が消してしまうとか
0464nobodyさん03/08/04 20:03ID:???
>>462
環境が整わないのに開発なんかしようとするな。
0465nobodyさん03/08/04 20:06ID:???
またファイト
漏れもうすぐネカフェの時間なので
0466あぼーんNGNG
あぼーん
0467あぼーんNGNG
あぼーん
0468あぼーんNGNG
あぼーん
0469nobodyさん03/08/04 20:47ID:???
あるモジュールがあるときでも無い時でも動くようにしたいのですが
負荷を考えると、ループの中でevalを使いたくないのです。
(ループさせる回数がとても多いので。)

現状では、こういう風にやってます。
eval('use Time::HiRes;');
if ( $@ eq undef ) {
  require './lib/bench.pl';
  $HIRES = 1;
  &bench::start;
} else {
  require './lib/dummy_bench.pl';
}

最初にこういう風にしておいて、

続く
0470nobodyさん03/08/04 20:47ID:???
bench.plの中身は

package bench;
use strict;
use Time::HiRes;
sub start {
 処理ほげほげ
}
sub check {
 処理ほげほげ
}
1;

dummy_bench.plの中身は

package bench;
sub start {
}
sub check {
}
1:

Time::HiResが必要な処理の時は
&bench::check
等として呼ばれるわけですが、最初のevalのチェックで失敗してたら
ダミーのほうが読み込まれているので空のサブルーチンが呼ばれます。

このやり方について2点疑問があります。
1.ファイル名とパッケージ名は同一でなければならないと聞いたことがありますが、これはやってはいけない方法なのですか?
2.もっとスマートな方法があるならご教授ください。
0471nobodyさん03/08/04 20:54ID:???
オーバーライドすれば?
0472nobodyさん03/08/04 21:40ID:???
>>469-470
1. 自分が何をやっているのか理解しているなら問題ない。
2. Time::HiRes の存在チェックを bench.pl 内でやれば
  dummy_bench.pl は不要。

#--- Bench.pm ---
package Bench; # 小文字のみのパッケージ名はプラグマ
use strict;
eval ('use Time::HiRes;');
my $EnableHiRes = $@ ? 0 : 1;

sub start;
*start = $EnableHiRes ? sub { ... } : sub { ... };

#--- Bench.pm を使うスクリプト ---
use Bench;
Bench::start();
047346903/08/04 21:50ID:???
ありがとうございます。
とてもためになります!

これがきっかけで
ついでにいろいろ気になることも増えてきたので
勉強中です。。
047446903/08/04 23:32ID:???
事後報告っす。
サブルーチンの定義自体をevalしないと
モジュールがないとき動きませんでした。

sub start;
*start = $EnableHiRes ?
 eval 'sub { use Time::HiRes; ほげほげ }' : sub {};

#単純にevalの中でuseしてもされてないのでこうするしかないような
0475nobodyさん03/08/05 00:29ID:???
>>474
何故また use し直すんだ? 下のコードで試してみ。
Time::HiRes が存在すれば実際に sleep した時間が、
無ければ常に 1 が返ってくる。

#--- Stop.pm ---
package Stop;
use strict;
eval('use Time::HiRes qw(usleep);');
my $Enable = $@ ? 0 : 1;
sub stop;
*stop = $Enable ? sub { usleep($_[0] * 1_000_000) } : sub { sleep($_[0]) };
1;
__END__

#--- test.p ---
#!/usr/local/bin/perl
use strict;
use Stop;
local $| = 1;
print 'foo,';
my $wait = Stop::stop($ARGV[0]);
print "bar. ($wait)\n";
__END__
047646903/08/05 01:03ID:???
あ、動きました。汁
まじすいませんです。

475のコードでもいろいろやってみました。

evalしないと動かなくなっていたのは
以後の処理のほうに問題があるっぽいです。
あるっぽいというのは、最小限の部分だけコード取り出して
いろいろ試してたら今動いたので。

これからじくーり調べます。
ほんとたすかりました。
0477nobodyさん03/08/05 01:12ID:???
my $Enable;
if (require Time::HiRes) {
$Enable = 1;
Time::HiRes->import('usleep');
}
0478nobodyさん03/08/05 05:31ID:???
日本語をブラウザのアドレスバーに入れたとき見たいな文字列に変換したいのですが
具体的には
「日本語 ファイル名テスト用ファイル.txt」を
%C6%FC%CB%DC%B8%EC%20%A5%D5%A5%A1%A5%A4%A5%EB%CC%BE%A5%C6%A5%B9%A5%C8%CD%D1%A5%D5%A5%A1%A5%A4%A5%EB.txt
このようにしたいのです、変換元の日本語はEUC(自身無い)です
今、他人のCGIをいじっているのですがそもそも反対のことをしているのはわかっているのですが
うまく、上の形になりません、何か効率のいい方法はありませんか?
047947803/08/05 05:33ID:???
訂正、
>うまく、上の形になりません、
うまく、上の形の文字列が取得できません
0480nobodyさん03/08/05 06:02ID:???
$str = '日本語 ファイル名テスト用ファイル.txt';
$str =~ s/(\W)/'%'.unpack("H2", $1)/ego;
print $str;
0481nobodyさん03/08/05 10:33ID:???
use Time::HiRes;

eval('use Time::HiRes;');
は何が違うの?
0482nobodyさん03/08/05 11:03ID:???
>481
前者は実行できなかった時にコンパイルエラーになる。
後者は実行できなくてもそのまま進む。
0483nobodyさん03/08/05 11:28ID:???
CGIとして使っているperlなのですが、バグが発生し、
俺の実力では原因が特定出来ないので相談にのってもらいに来ました。

ファイルの書き換えなのですが、日頃正常に動いていた動作で、
突然ファイルの中身が消滅してしまい、「0バイトのファイル」になってしまいました。

記述内では、ファイルを書きかえる処理として、

open(FILE,">$log_file");
print FILE $log_code;
close(FILE);

このようなもの「のみ」あり、$log_codeには必ず何かが代入されています。
$log_code に何かが代入されているのはこのプログラムの基本で、代入されていないわけはありません。
また、今回発生したバグと同一の処理は日頃から普通に行っていました。

また、このファイルは複数人数が書き換える物ではなく、
ID登録した「一人の人物」が書き換えるものなので、ファイルロックなどはしていませんでした。

今回のバグで、ファイルの中身が消滅してしまう原因となったアクセス者は、
「俺自身」です。

プログラム作者は俺自身なので、微妙に動作は怪しいですが、今回のは想定外のバグで、原因がつかめないでいます。
記述を考えても、処理自体のバグでファイルが消えてしまった事は非常に考えにくいのですが、

これは取り敢えず、
「処理自体のバグ」を疑うべきでしょうか?
「システムのファイル書き換えミス」を疑うべきでしょうか?

m(__)m
0484あぼーんNGNG
あぼーん
0485nobodyさん03/08/05 11:55ID:???
>$log_code に何かが代入されているのはこのプログラムの基本で、代入されていないわけはありません。
デバッグにおいてこういう思い込みは最大の敵。
必ずテストを行ない、その結果を確認する事。
この場合なら、openの前後の行にprintで$log_codeを表示させてみる。

はっきり言えば、>483の説明だけではなんとも言えない。
情報が少なすぎる。
0486nobodyさん03/08/05 12:24ID:???
再現できなさそうだしopenの前に
die "Error : \$log_code" unless ($log_code);
とか
これを機にいろいろトラップしとき
0487nobodyさん03/08/05 13:14ID:???
>>482 ありがと。
eval 文字列でも、eval { }のように、エラートラップできるとは
知らなかった。勉強になりました。
0488nobodyさん03/08/05 14:17ID:???
>>487
両者の違いは、一気に構文解析がされるかされないか。
eval BLOCKの場合はそうされるので、eval 文字列よりも高速
048948303/08/05 14:46ID:???
>>485-486

ありがとうございます。
同じように再現しようと思っても日頃からやってるのと同じ処理なので困ってました。
今度から、ことごとくプログラム内でエラーチェックしておくようにします。

バグの原因が分からない時ってスッキリしないですね。。。。汗
0490nobodyさん03/08/05 16:01ID:???
一人の人物だからロックしないってありなん?
超高速でダブルクリックして呼び出しかけたらどうなんねん?
0491nobodyさん03/08/05 17:42ID:???
複数窓開くのもあるな。ってか、そのCGIはゲーム系?



クレス
0492名無しさん03/08/05 18:31ID:???
>>483
消えて当然かと。
今まで運良くopenとcloseの間で処理が停止しなかっただけ。
049349203/08/05 18:45ID:???
>>483
もうひと言付け加えると今まで正常に動いていたのは$log_fileが軽かったから。
$log_fileのサイズが臨界点に達すると、鯖がいい加減にしろと作業途中で職場放棄。
049448303/08/05 20:36ID:???
>>490-493
みなさんありがとうございました。
大変参考になりました。

>>492
それを回避するには、ファイルを2つ用意し、バックアップも常に生成しておけ…
と言う事でしょうか?
0495nobodyさん03/08/05 20:58ID:???
排他制御を知らない奴はCGI作るなという事でFA。
0496nobodyさん03/08/05 21:07ID:???
Func (・∀・) Anal
0497nobodyさん03/08/05 21:40ID:???
>>496(・∀・)カエレ!!
0498nobodyさん03/08/05 22:11ID:???
> $log_fileのサイズが臨界点に達すると
どのくらいよ?
0499nobodyさん03/08/05 22:25ID:LRtAIpMc
srand(time|$$);
my $et = int(rand(9));
if($et == 3){
srand(time|$$);
$et =int(rand(2)) ;
if($et == 0) {
@
}else{
A
だと、全部@になります。
2つ目の srand(time|$$); を無くすと、
正常になりますが、どうしてでしょうか?
0500nobodyさん03/08/05 22:25ID:???
>>495
排泄処理…?プロセス事故死の話だろ?

>>494が正解。
ただlogを毎回自動バックアップしてたら壊れたファイルも…ってことになるから、
その変自分のにあったうまい方法を考えておく事。

>>498
perlのメモリ管理はperl自身でやっているから、
つまり鯖によって設定が(ry
0501nobodyさん03/08/05 22:29ID:???
>>499
なんで2回も初期化してるのかは知らんけど。
randの出しかたはアルゴリズムがマシンによって違うぞ。
俺の勘では、それwin系のシステムで使ってないか?
0502あぼーんNGNG
あぼーん
0503nobodyさん03/08/05 23:06ID:???
>>500
> 排泄処理…?
おまるを用意しる!(w
0504nobodyさん03/08/05 23:34ID:???
>>499
これを動かしてみそ。

srand(time|$$);
my $base = rand;
print "base = ", $base, "\n";
srand(time|$$);
print "base*3 = ", $base*3, " rand(3) = ", rand(3), "\n";
srand(time|$$);
print "base*2 = ", $base*2, " rand(2) = ", rand(2), "\n";

しかし、srand(time|$$)って、Win系だと数列がほとんど変化しない予感。
0505あぼーんNGNG
あぼーん
0506nobodyさん03/08/06 01:09ID:???
>>505( -Д-)…
050750403/08/06 01:10ID:???
説明が無いのもなんですので。。
処理系によるかもしれませんが、大抵、srandに同じ乱数シードを与えると
randで読み出す乱数列が同じ物になります。
>>499の複数回のsrand(time|$$)で、$$(プロセスナンバー)は変化しません。
timeは一秒ごとに更新なので、これもほとんど変化しません。
つまりrandの前でsrand(time|$$)を実行することによって、(かなりの確率で)
同じ数列を読み出してることになります。

rand(n)はrand()*nと(最低でもperl5.005_03以降は)等価なので、
int(rand(9))==3が成り立ちrand()値が同じ場合、rand(2)で得られる値は
3.0/9*2=0.666..から3.999../9*2=0.888..までの値になります。
よってint(rand(2))で得られる値は常に0になります。

…多分ね。
0508nobodyさん03/08/06 09:23ID:7imIHn2W
evalについて教えてください。
パッケージ($package)のシンボルテーブルを、%stabで参照できるようにする
コードとして、赤ラクダ本に次のように書いてありました。

local(*stab) = eval("*_$package");
(*_$packageの部分は、Perl5では、*{${package}::}だと思います。)

このevalは何をしているのでしょうか? あっても、なくても同じでしょうか?
0509 ◆hMJAPH9PWA 03/08/06 09:29ID:???
>>508
perl4ではシンボリックリファレンスは使えなかったから、eval()が必要だった。
今ではわざわざeval()する必要はないね。
ついでに型グロブで別名をつける必要も無い。
my $stab_ref = \*{$package."::"};
これでシンボルテーブルへの参照を直接使えばいい。
0510nobodyさん03/08/06 10:57ID:7imIHn2W
>>509さん
どうも有り難うございます。でも、Perl5でシンボリックリファレンスを使え
ないようにして、しかもevalなしでも動いてしまうのが不思議です。

use strict 'refs';
$package = 'main';
local(*stab) = "*${package}::";
while (($key, $val) = each(%stab)) {
local(*glob) = $val;
if (defined $glob) { print "$key => $glob\n"; }
}
0511 ◆hMJAPH9PWA 03/08/06 11:44ID:???
>>510
あ、ホントだ。
多分、perl5からだと思う。
でも折角のstrict 'refs'なのに…変な仕様だね。
0512nobodyさん03/08/06 11:45ID:JjxVikEH
HP管理システムのCGIを作ろうとしてるんですが、
フォームから取り入れた情報にファイルを書き換えるコードを書いたんです。
そしたらその書き換えるファイルを開こうとしてもそのOPEN行でエラーが起こってしまうんです
どうしたらいいのでしょうか

open(FILE,"+<$fileini");

ご要望ならソースコードの一部または全部を載せますが・・・。
誰か教えてください。
0513nobodyさん03/08/06 12:55ID:???
>>1
【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。

1: 自分はこう言う事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。
0514nobodyさん03/08/06 13:11ID:???
エラーが起きました、開けません。
だってさ。

しかも、「ご要望なら」ソースを見せますが。だってさ。
誰の要望だよ。

ちなみにそのopenは書式ミスしてないよ。
0515nobodyさん03/08/06 13:13ID:???
>>500
Perlは変数の大きさを勝手に制限するような事はしないから、
Perlの設定や、鯖の設定(もしかしてこれは資源の制限値?)には関係なく、
Perlが取れる最大のメモリが影響する。

>>498
CGIとして動かすなら、ブラウザのタイムアウトでプロセスが殺されるという限界になるはず。
0516nobodyさん03/08/06 13:15ID:???
あぁ、httpdのCGIプログラムに対するタイムアウトの方が厳しいか。普通。
0517nobodyさん03/08/06 13:19ID:???
ブラウザのタイムアウトでは鯖のプロセスが死ぬの??
0518nobodyさん03/08/06 13:40ID:???
>>517
「CGI signal タイムアウト」でググってみ。
書籍があるならsignalの章を見てもいいぞ。

て、ここperlコーディングスレじゃん....
051951203/08/06 14:37ID:JjxVikEH
すいません、なにぶんわきまえがないもので・・・

HPの諸設定の書き換えがしたくてCGIをコーディングしたんですが
フォームで設定ファイルを書き換える段階まで来て、
このOPEN行で
Unterminated <> operator at administrator.cgi line 194.
ってでるんです。194行目は open(FILE,"+<$fileini"); です。
0520あぼーんNGNG
あぼーん
052133603/08/06 14:51ID:???
>>519
+<を削除したらどう
052251903/08/06 15:03ID:JjxVikEH
>>521
それでいけるんですか!?
052351903/08/06 15:06ID:JjxVikEH
なんかエラー増えちゃいました・・・(泣)

Scalar found where operator expected at administrator.cgi line 194, at end of li
ne
syntax error at administrator.cgi line 194, near "open(FILE,"$fileini"
String found where operator expected at administrator.cgi line 201, near "print
FILE ""
(Might be a runaway multi-line "" string starting on line 194)
(Missing semicolon on previous line?)
Backslash found where operator expected at administrator.cgi line 201, near "pri
nt FILE "\"
(Do you need to predeclare print?)
syntax error at administrator.cgi line 227, near "}"
administrator.cgi had compilation errors.
0524nobodyさん03/08/06 15:08ID:???
>>508-511
local(*stab) = *{"${package}::"}; # シンボリックリファレンス
local(*stab) = "*${package}::"; # シンボリックリファレンスではない

$pkg = 'ABC';
print "*${pkg}::"; # *ABC::と表示
print eval("*${pkg}::"); # *main::ABC::と表示、何でこうなるかは不明
052533603/08/06 15:11ID:???
その行そのものは間違ってないがエラー表示で<>がおかしいといっているので
とりあえず削除してみてどうなるのか確認したかった。
どっか前の行で"を付け忘れたりとかそんなミスじゃないの。
052633603/08/06 15:19ID:???
>>519
$file ="test.txt;
open(IN, "+<$file");
これで同じエラーが出ます。
0527nobodyさん03/08/06 15:25ID:???
>>526
カッコや""なんかの対応が合ってないだろ。
エラーメッセージ行は考えずにそのルーチン内を全部見てみれ。
052851903/08/06 16:00ID:JjxVikEH
>>527
一応一通り見てみたんですけど、おかしいとこはなかったんです。

sub formset {
# フォームデータ取得
if ($ENV{'REQUEST_METHOD'} eq 'POST') {
read(STDIN, $query, $ENV{'CONTENT_LENGTH'});
} else {
$query="$ENV{'QUERY_STRING'};
}
# フォームデータ復元
foreach $pair (split(/&/, $query)) {
($key, $value) = split(/=/, $pair);
# 文字のデコード
$value =~ tr/+/ /;
$value =~ s/%[0-9a-fA-F][0-9a-fA-F]/chr(hex($1))/eg;
$foem{$key} = $value;
}
# ファイル出力
open(FILE,"+<$fileini");
seek(FILE,0,0);
foreach $key (sort keys %form) {
print FILE "\$$key=\"$form{$key}\"\;\n";
}
# ファイルを閉じる
close(FILE);
}

これがこのコードの入ったサブルーチンです。
このルーチンを抜いてチェックしてみたらsyntax OKでした。
052951903/08/06 16:01ID:JjxVikEH
すいません、かなり、見づらくなってしまいました(汗)
0530nobodyさん03/08/06 16:04ID:???
$query="$ENV{'QUERY_STRING'};
0531nobodyさん03/08/06 16:06ID:???
何故か分からないが、>>506が気に入った。
0532あぼーんNGNG
あぼーん
053351903/08/06 16:20ID:JjxVikEH
ほんとだ!
今の今までまったく気がつきませんでした。

syntax OK出ました!!
ありがとうございました!
0534nobodyさん03/08/06 17:11ID:???
情報を小出しにすると解決までの道のりが遠くなる、という見本のような質問だったな。
0535nobodyさん03/08/06 17:51ID:???
うぜぇ
0536nobodyさん03/08/06 18:27ID:???
つーか括弧の対応とかクォーテーションの数を確認するスレではないんだが
0537nobodyさん03/08/06 18:34ID:???
perlの気持ちになってみると、

$query="$ENV{'QUERY_STRING'};
.....次の " を探し中....
open(FILE,"+<$fileini");

ビクッ. ∧ ∧ ∧ ∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  Σ(゚Д゚;≡;゚д゚) < うおっ、 " がでてきたが、なんかすげえ所に迷い込んじまったぞ、ゴルァ!
     ./ つ つ    \______________________
  〜(_⌒ヽ ドキドキ
     )ノ `Jззз
0538nobodyさん03/08/06 18:40ID:???
>>533
悪いが、この程度も自力解決できないようだと、プログラミングは難しい。

試しに聞いてみるが、この程度のエラーが出る度に2chで何日もかけて尋ねるのか?
0539nobodyさん03/08/06 18:43ID:???
明らかに構文が正しい行でエラーが出た場合は、
>>528みたいに、前の"の対応ができてない。

EOFにエラー出る場合は、大体括弧の対応がおかしい。


このくらいは覚えれ
0540nobodyさん03/08/06 18:48ID:???
>試しに聞いてみるが、この程度のエラーが出る度に2chで何日もかけて尋ねるのか?

そういう奴が以前いたな。
0541nobodyさん03/08/06 18:50ID:???
opun(DATA,"data.txt");
で動きません。どうしてですか?
0542nobodyさん03/08/06 18:58ID:???
>>541
>>1
1: 自分はこう言う事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。

最低でも1と3が無いと誰も答えられないよ。
0543nobodyさん03/08/06 18:59ID:???
ファイルハンドルをDATAとして、data.txtを開きたい
Syntax errorがでました。
0544nobodyさん03/08/06 19:07ID:???
厨な質問が増えたな
0545nobodyさん03/08/06 19:30ID:???
>>543
構文エラーです。
構文を確認してください。
0546nobodyさん03/08/06 20:05ID:???
ローマ字perlというのが出来たのか?
0547nobodyさん03/08/06 20:24ID:???
>>541
わざとか?ネタか?いいかげんにしてくれ。

open

さぁ、さっさと帰れ。
0548nobodyさん03/08/06 20:59ID:???
541です。すいません、構文エラー直りました。
それと、
if(!iguzisuto "data.txtx"){処理;}
が動きません。
どうしてでしょうか。イグジストであってるはずなんですが・・・
■ このスレッドは過去ログ倉庫に格納されています