Perl コーディング初心者質問コーナー Part34
■ このスレッドは過去ログ倉庫に格納されています
0001前スレの連投で気分崩したので後よろ
04/04/05 16:01ID:???【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
「コマンドの意味がわかんない」とかはマニュアル見ましょう。
回答者さんは何でも屋じゃありません。
1: 自分はこう言う事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。
最低でも1と3が無いと誰も答えられないよ。
ソース貼る時は、全角スペースでインデント忘れずに。
良い回答は良い質問から。一緒に勉強しましょう。
過去ログやお勧めサイトは >>2-10
0067nobodyさん
04/04/08 21:55ID:???何でもかんでも人に聞かずにとりあえず黙って調べてテストしてを繰り返せ
006953
04/04/08 22:00ID:???でも、本当に簡単なミスでも、指摘されるまで気付かないことだってありますよ。
いくらテストしても、エラー出ないからどの行が悪いのかも見当つかないし。
これで完全に解決できたので、以降書き込みには来ません。
答えてくれた方、有難うございました。
0070nobodyさん
04/04/08 22:12ID:???普段どんなデバッグ手法使ってるのか良く分かった。
0071nobodyさん
04/04/08 22:12ID:???何処でミスしたかもすぐわかるようになるんだよ
一つ質問する
↓
回答どおりしたら解決した
しかし他のわからないことも質問
↓
解決。別の質問
↓
繰り返し
この一連の流れの中に「自分で調べる」を入れろ
せめて2,3時間調べろ
0072nobodyさん
04/04/08 22:19ID:???0074nobodyさん
04/04/08 22:26ID:???おまいプログラムやめろ
少なくとも共用サーバでスクリプト走らせるのやめろ
007559
04/04/08 22:31ID:1altNbSl192.168.0.1
192.168.0.10
192.168.0.100
みたなものです。
0076nobodyさん
04/04/08 23:28ID:???$file = '192.50.218.168';
$num2 = unpack("B32", pack("C*", split(/\./, $file)));
0077nobodyさん
04/04/09 00:33ID:PgKEk2Oq例えば、1MぐらいあるHTMLファイルの<title>だけを知りたいので、先頭1000バイトだけ取るとか。
0079nobodyさん
04/04/09 01:07ID:6udLpUMWさせるコードが上手く動きません。(perl ver 5.8.0 cgi-lib.pl ver 1.14)
require 'cgi-lib.pl';
&ReadParse;
$namae=$in{'NAMAE'};
print "content-type: text/html\n\n";
print "<html>";
#print $namae;
print "test\n";
print "</html>";
としているのですが、HTMLフォームからテキストを送ると「ページを表示できません」が出てしまい
うまく実行されません。cgi-lib.plをコマンドラインから実行すると、間違いなく動いているのですが、
HTMLから上記CGIを実行すると うまくいきません。
お分かりのかたいらっしゃるでしょうか
0080nobodyさん
04/04/09 01:09ID:6udLpUMW#!/usr/bin/perl
require 'cgi-lib.pl';
&ReadParse;
$namae=$in{'NAMAE'};
print "content-type: text/html\n\n";
print "<html>";
print $namae;
print "</html>";
というコードを書いたのですが、うまくいきません
0081nobodyさん
04/04/09 01:21ID:ruDZ3+hJそのスクリプトのファイル名が myscript.cgi だとして
#!/usr/bin/perl
eval {
require 'myscript.cgi'; # あなたのスクリプトを読み込む
};
if ($@) {
print "Content-type: text/plain\n\n$@";
}
というスクリプトを実行するとどうなります?
詳しいエラーを見る事ができるはずなんだけど。
0082nobodyさん
04/04/09 01:21ID:???まずWWWサーバのエラーログを調べる
もしエラーログが調べられないときは、そうだな、
とりあえず改行コードでも疑ってみたらどうだ?
0083nobodyさん
04/04/09 01:25ID:???0086nobodyさん
04/04/09 01:58ID:6udLpUMWありがとうございます。下記のような表示が出たのですがさっぱりです(ちなみにcgiファイル名は「my.pl」
Can't locate my.pl in @INC (@INC contains: /usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/lib/perl5/5.8.
0 /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_pe
rl /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/ve
ndor_perl .) at /var/www/cgi-bin/test.pl line 3.
>>84
HTMLは間違っていないと思います
ちなみに下記
<html>
<meta http-equiv="Content-Type" content="text/html;charset=euc">
<body>
<form method="post" action="../cgi-bin/3-3-1.pl">
名前<input type="text" name="NAMAE"><p>
<input type="submit">
</form>
</body>
</html>
HTMLの文字をperlで変数に格納し、それをHTMLで表示させるだけなのですが
>>83さんもおっしゃるように perlのパスも本体CGIやcgi-lib.pl内のパスも確認したのですが
間違っていないと思うのですが、どうしてうまくいかないものでしょう
0087nobodyさん
04/04/09 01:59ID:6udLpUMW<html>
<meta http-equiv="Content-Type" content="text/html;charset=euc">
<body>
<form method="post" action="../cgi-bin/my.pl">
名前<input type="text" name="NAMAE"><p>
<input type="submit">
</form>
</body>
</html>
0088nobodyさん
04/04/09 02:08ID:???008979
04/04/09 02:24ID:6udLpUMWうーん おかしいなぁ 確かに指定したはずなのですが
CGIを実行したときのログをみてみたらこんな感じで書いてあった
Argument "NAMAE=ffffff" isn't numeric in subroutine
entry at /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi/ModPerl/RegistryCooker.pm line 160.!
もう少し調べてみることにします ありがとうございました
0090nobodyさん
04/04/09 04:37ID:+yDvGh6Oエラー表示する時に、ヘッダー(content-type)が2重になってしまう場合があるので…。
ヘッダー出力すると同時に、定数か何かでフラグ立てておけば良いんでしょうか?
0091nobodyさん
04/04/09 04:39ID:???普通にフラグで判断しましょう。
0093nobodyさん
04/04/09 08:40ID:qDAc9oFcやりたいこと:
掲示板の投稿済み投稿内容編集フォームで
改行を<BR>に変換して保存した本文を
<BR>を改行コードになおして
テキストエリアに投稿済みの本文を表示する
こんな風にやってみた:
1.$text =~ s/<BR>/\x0D\x0A/g;
<textarea cols=60 rows=3 name=text value=$text></textarea>
2.$text =~ s/<BR>/\n/g;
<textarea cols=60 rows=3 name=text value=$text></textarea>
両方ともだめでした。
$textの内容が空になります
よろしくお願いします。
0094nobodyさん
04/04/09 08:56ID:???o <textarea cols=60 rows=3 name=text>$text</textarea>
0096nobodyさん
04/04/09 16:05ID:???csvの中身を表示したい。
こんな風に自分は書いた :
open(FILE, "test.csv");
$data = <FILE>;
close FILE;
($a,$b) = split (/,/,$data);
$i = 0;
while ($i < 5){
print "$a"
$i++;
};
結果。同じ列の文字が繰り返される。。
(whileを使わなかったらずっと表示されたので
今は食い抑えてる幹事になってます。)
基本的っぽいけどサパーリなのです。
宜しくお願い致します。。
009796
04/04/09 16:30ID:???0098nobodyさん
04/04/09 17:03ID:???0099nobodyさん
04/04/09 17:19ID:???while (<FILE>){($_,@_) = split /,/; print;}
close (FILE);
010075
04/04/09 18:56ID:gUQPCoa8>>64 IPアドレスが一行づつかれたファイルです。
192.168.0.1
192.168.0.10
192.168.0.100
みたなものです。
76 :nobodyさん :04/04/08 23:28 ID:???
>>75
$file = '192.50.218.168';
$num2 = unpack("B32", pack("C*", split(/\./, $file)));
↑ありがとうございました。変換できました。
変換後、改行がなくなりこのように↓変換したIP文字列がつながってしまいました。
これを32文字づつ、改行したいのですが、どのような構文?を使用すればいいのでしょうか。
とっかかりが分かりませんので、さわりだけ教えていただければ後は調べますので
よろしければ教えて下さい。
=======================================================
00001100100110110111010011110011000011001101001000110000111111100000110011100101
11010011010101110000110011100110000100010010011010000001000010110110100000000001
10000001000010110110111011011010100000010000101101110100000011011000000100001011
01110100100000101000000100001011011101000011100010000001000010110111010001001010
10000001000010110111011001111000100000010000101101110110111110001000000100001011
10001011000000011000000100001011000011100000000110000001000010111001000000000010
================================================
0101nobodyさん
04/04/09 19:03ID:???open (FILE, "ip.txt");
while(<FILE>) {
$num2 = unpack("B32", pack("C*", split(/\./)));
print "$num2\n";
}
close (FILE);
0102nobodyさん
04/04/09 19:04ID:???もうくんな発言スンナ
0103nobodyさん
04/04/09 19:40ID:???>print "$a"
>$i++;
>};
ワロタw
$aの中身入れてないなら同じのが出て当然だろw
0105nobodyさん
04/04/09 21:54ID:???open(FILE, "./aborn.csv");
@list = <FILE>;
close(FILE);
@temp = ();
foreach $rr (@list){
if($rr eq $dellist){
print "$rrを削除しました<BR><BR>";
} else {
push(@temp, $rr);
print "$rrは削除せず<BR><BR>";
}
}
open(OUT, ">./aborn.csv");
print OUT @temp;
close(OUT);
以上のようなソースでプログラムを動かすと、
@listに$dellistと同じ文字列が含まれているのに、その文字列は削除されずに
else以下の「削除せず」をprintして、csvファイルからも削除されませんでした。
「eq」の部分が原因だと思うのですが、==では当然正常に動きませんし…
はて、どうしたものでしょうか。
0106nobodyさん
04/04/09 22:14ID:???http://tohoho.wakusei.ne.jp/wwwperl1.htm#CompStrOperand
http://tohoho.wakusei.ne.jp/wwwperl1.htm#MachingOperand
0107nobodyさん
04/04/09 22:16ID:???0108nobodyさん
04/04/09 22:16ID:???0109105
04/04/09 22:26ID:???今サーバーにアップロードして試してみると、リストからの削除が行えました。
変わりに、文字化けが起こるようになりましたが…
謎。
>>106-108
なるほど、eqにこだわらずneで組めばelse文がいらないというわけですか。
参考になります。
011079
04/04/09 23:21ID:6udLpUMW下記のようにコードを直したら無事cgi-lib.plが処理してくれました
(訂正前) &ReadParse; (訂正後)&ReadParse(*in);
実はこのコード、本にのっていたやつなんですけど、本が間違ってたんですかね。
いろいろ調べた結果&ReadParseの後ろに(*in)を付けないと フォームから渡された
データが in に入らないんですね。 なんかやられたって感じです。
でもみなさんにいろいろ教わった結果、perlのエラーはapacheのログみれば分かることや
その他いろいろのことを知ることができました。アドバイスいただいたみなさん ありがとう
ございました
0112nobodyさん
04/04/10 00:16ID:???日本語の表示についてです。
WindowsXP、AN HTTPD、ActivePerl5.8です。
ソースの文字コードはeucです。
use Encode;
use encoding 'euc-jp';
my $x = "あ";
print $x;
これだと文字化けしてしまいます。
Encode::from_toやEncode::encodeなどで$x文字コードを変換しても上手くいきません。
一応ググッてはみたのですが、見つかったPerl5.8の解説ページはどれも中級者向けといいますか、
読者が5.6以前の文字コードの扱いやjcode.plの扱いを理解しているという前提で書かれたようなものばかりで、
今から5.8でPerlを勉強しようという入門者向けに日本語の扱いを解説したページを見つけられませんでした。
0113nobodyさん
04/04/10 00:44ID:???おまいさんの思ってる「文字化け」の定義を述べよ。
ブラウザ側でエンコードを euc-jp として指定してやれば普通に見えるんじゃないか?
0114nobodyさん
04/04/10 01:04ID:???windowsのコンソールに表示させてる?
ならeuc-jpじゃなくてsjisで書いてencode指定すれば
とりあえず正しく表示される。
こんなのもちゃんと通る。
use encoding 'sjis';
my $x = "ソースを表示";
print "$x(";
print length $x;
print "文字)\n";
$x =~ s/表/提/;
print $x;
0117112
04/04/10 02:22ID:???新しく覚えたことはまず拡張子plでwindowsのコンソールで試し、その後CGIにして動かす、というやり方で勉強していました。
今回は最初のコンソールの段階で上手くいかなかったので、その後のCGIでブラウザ表示するのをやっておりませんでした。
レスを見て、CGIでのブラウザ表示を試したところ、eucで表示が確認できました。
>>113
というわけで、そもそもブラウザでの表示を試していませんでした。
>>114
ご指摘の通り、コンソールで表示させておりました。
ソースをsjisにすることでコンソールでも表示できました。
sjisだと色々問題が発生するのでソースはeucが基本、と書いてあるHPを読んだのでeucにしておりました。
>>115>
Perl5.8だと内部ではUTF8でどうのこうの、というあたりでかなり頭が混乱しております。
なんとか「あ」が表示できたので、これをとっかかりに詳しく勉強していこうと思います。
>>116
そのへん、まだ混乱しています。is_utf8($x)だと真になるので、UTF8なのか。
でも結局無変換のままで上手くいったので、やっぱりeucなのか。
UTF8フラグの立ったeuc??
この辺がまだきちんと理解できてないので、近いうちにまた壁にぶつかる予感です。
0118nobodyさん
04/04/10 20:34ID:H+y5o94iリンク先に飛ぶときhttp-referrerに任意のURLをぶち込んで飛ぶということは可能でしょうか?
0120nobodyさん
04/04/10 20:44ID:???0121118
04/04/10 20:53ID:H+y5o94iレスありがとうございます。
CGIスレ見てみましたが、出来ないっぽいですね?
0122nobodyさん
04/04/10 21:06ID:???サーバーからはどうにもならんでしょう。
2chみたいにワンクッションさせてみるとか?
0124nobodyさん
04/04/10 22:07ID:zPwA0QL/下のスクリプトが上手く動かないんです
use strict;
{
package Config;
$host = "www.example.com";
}
package main;
print "host = $Config::host\n";
use strictしているときは、$Config::host = "www.example.com"; って書かないといけないみたいですが
これじゃあ、package Configの意味がないですよね?
package Config; のあとに no strict; っていうのを入れないといけないんですか?
どうしたらいいんだろう・・・おしえて。
0126nobodyさん
04/04/10 22:22ID:???$e2=int(rand(6));
while($e2==$e1){
$e2=int(rand(6));
}
$enemy3=int(rand(6));
while($e3==$e1 or $e3==$e2){
$enemy3=int(rand(6));
}
1〜6から、ランダムで3つの数字を重複なしで、
取り出すプログラムなんですけど、
しょぼいですよね・・・
なにか華麗な方法知ってる方いれば、教えて下さい。
0127nobodyさん
04/04/10 22:24ID:???$e1=int(rand(6));
$e2=int(rand(6));
while($e2==$e1){
$e2=int(rand(6));
}
$e3=int(rand(6));
while($e3==$e1 or $e3==$e2){
$e3=int(rand(6));
}
0128nobodyさん
04/04/10 22:34ID:???プラグマの影響範囲を誤解している。
http://perldoc.com/perl5.8.0/pod/perlmodlib.html
>>126
1..6 をランダムな順序で持つ配列から 3 つ取り出す。
http://www.din.or.jp/~ohzaki/perl.htm#ArrayRandom
0129nobodyさん
04/04/10 23:02ID:???use strictの意味も分からずuse strictしても意味無いですよね?
perl5.6.0未満のバージョンなら
{
package Config;
use vars qw($host);
$host = "www...";
}
perl5.6.0以上のバージョンなら
{
package Config;
our $host = "www...";
}
# ...
print $Config::host;
0130nobodyさん
04/04/11 00:07ID:???何スレか前に同じ質問があった。
そのときは確か、List::Utilが使えれば一番早くて楽だっていう
結論だった気がする。
use List::Util qw(shuffle);
($enemy1,$enemy2,$enemy3) = shuffle 1..6; #@enemy[0..2] の方がいいと思う。
0132nobodyさん
04/04/11 00:26ID:???Perl 5.8.0使っているので、下のほうを参考にさせてもらいます。
use strict;はとりあえずつけとけと よく見るのでつけてみました。
とりあえず変数はmyつけて宣言しとくといい らしいので。
packageのなかでは our というのをつけるんですね。
>>128
プラグマですか。自分の持っている本にも少ししか触れていないし、
難しそうな考え方ですね・・・。
知らないのに何かができるわけも無いので、
頑張って勉強します。どうもありがとう、でした
0133nobodyさん
04/04/11 00:36ID:???package内ではourをつけて宣言するんだ
(mainの中でmyをつけて宣言するのと同じように・・・ってmyの複数形なんだな)。
package内で$varとしたらグローバルになっちゃうわけですね。
0134nobodyさん
04/04/11 01:34ID:???全然違うし。
http://www.kt.rim.or.jp/%7ekbk/perl5.005/perlmod.html
my 変数はシンボルテーブルで管理されていないので、同じファイル上で
宣言されていれば名前空間が変わっても参照できる。strict プラグマの
影響範囲も同様。
#!/usr/bin/perl
use strict;
package Foo;
my $foo = 'foo!'; # strict vars の影響範囲内
package Bar;
print $foo; # foo!
__END__
vars プラグマや our によって宣言された変数は strict のチェック
対象外となるだけでグローバル変数と同等。シンボルテーブルで管理
されているから $Config::host のようにパッケージ名から指定すれば
外部から参照できる。
あと標準モジュールに Config.pm があるので、パッケージ名に
Config を使うのは止めた方がいい。
0135nobodyさん
04/04/11 04:40ID:???use strict;
use warnings;
use sigtrap;
use diagnostics;
&main;
exit;
sub main {
my $val1 = 1; our $val2 = 2;
&test;
print '$val1(' . \$val1 . qq|="$val1"\n|;
print '$val2(' . \$val2 . qq|="$val2"\n|;
# print '$val3(' . \$val3 . qq|="$val3"\n|;
# print '$val4(' . \$val4 . qq|="$val4"\n|;
sub test {
my $val3 = 3; our $val4 = 4; $val1 = 5; $val2 = 6;
print '$val1(' . \$val1 . qq|="$val1"\n|;
print '$val2(' . \$val2 . qq|="$val2"\n|;
print '$val3(' . \$val3 . qq|="$val3"\n|;
print '$val4(' . \$val4 . qq|="$val4"\n|;
}
}
0136nobodyさん
04/04/11 08:05ID:???まー大体予想通り。
>sjisだと色々問題が発生するのでソースはeucが基本、と書いてあるHPを読んだのでeucにしておりました。
最近の Perl では
>Perl5.8だと内部ではUTF8でどうのこうの
の通りコード変換を行うのでとりあえず大丈夫。
ポイントは use encoding の役割。
・ソースコードの文字コード指定(Perl がソースを解釈する際、この文字コードから UTF-8 に変換)
・標準入出力の文字コード指定(STDIN, STDOUT に対する入出力をこの文字コードに変換)
の 2 つ。つまり、>>112 のコードでは
ソースコードでは euc → Perl 解釈時に UTF-8 に変換(よってis_utf8($x)が真) →
print で(STDOUT)に出力される時点で再び euc に変換
という流れ。詳しくは perldoc encoding 参照。
0137nobodyさん
04/04/11 08:29ID:???パッケージだとかモジュールだとかについて詳しく知りたければ、「続・初めてのPerl」を
読むといいかもしれない。
正直この本に「続・初めてのPerl」とタイトルをつけるのは間違ってるという気もするけどね。
表表紙も「Perl オブジェクト、リファレンス、モジュール」っていう副題の方が文字でかいし。
>>134
細かいことだけど、正確には同じファイル上で、じゃなくて同じブロック(の前方)で、だよね。
0138nobodyさん
04/04/11 10:29ID:???ファイルスコープはブロックじゃないので、より正確には
<q>
my と local は、変数 (my の場合) やグローバル変数の値 (local の場合)
を、それをとり囲むブロック、サブルーチン、eval 、またはファイルの中が
有効範囲となるように宣言する。<cite>駱駝本 2nd Edition 2.6.8</cite>
</q>
だね。
0139nobodyさん
04/04/11 12:37ID:e6FKOv37foreach(keys(%a)) { $i++ } のように一個一個数えていくしかないのでしょうか?
0140nobodyさん
04/04/11 12:41ID:???0141nobodyさん
04/04/11 13:10ID:e6FKOv370142nobodyさん
04/04/11 13:53ID:e6FKOv37クラスでインスタンス毎に別個の値を保存したい連想配列があるのですが
どういう風に実装すればいいのかわかりません。
以下のようなコードだと複数のインスタンスから%aにアクセスされると
まずいことになっちゃいますよね?
my %a;
sub new {
my $self = shift;
my $obj = {
name => shift
};
bless $obj,$self;
$obj;
}
0143nobodyさん
04/04/11 14:24ID:???sub new {
my $self = shift;
my $obj = {
name => shift
};
bless $obj,$self;
$self->{HOGEHOGE} = {};
$obj;
}
0144nobodyさん
04/04/11 15:12ID:U2PVfz4j$addr = (gethostbyname("hogehoge.com"))[4];
$name = pack("S n a4 x8", 2, 80, $addr);
socket(S, 2, 1, 0);
connect(S, $name);
binmode(S);
select(S); $| = 1; select(stdout);
print S "GET /index.html HTTP/1.0\r\n\r\n";
while (<S>) { print; }
close(S);
なんて事をやったんだが、http://hogehoge.com/index.htmlのソースが表示されるワケではなく、
HTTPヘッダが表示された。
ヘッダは良いからindex.htmlのソースを読みたいんだけど、どうやればいいのかGoogle検索してもわからん
どうやるんすか?
0145144
04/04/11 15:26ID:U2PVfz4j自分ではまだ作れないからとりあえず他人作の関数使うわ
理解は後回し
0146nobodyさん
04/04/11 15:26ID:???でなければLWP使え。
0147nobodyさん
04/04/11 15:34ID:e6FKOv37ありがとうございます
0148nobodyさん
04/04/11 17:59ID:9ah7xv1/<> ; # ! <STDIN>;
open File,"$ARGV" or print $!,"\n";
# Not ($ARGV[0] and @ARGV);
while(<File>){print;}
close File;
なぜに動くのか ???
デバックするとよけーに分からん
猿でも分かる説明 お願いします
0149nobodyさん
04/04/11 18:32ID:???<>は<ARGV>と同じ。
ファイルハンドルARGVは*最初に<>/<ARGV>を評価した時に*@ARGVの、
中身をファイル名のリストと見なし、$ARGV[0] .. $ARGV[n]を順に暗黙のうちにopenする。
中身がなければSTDINと同じ。
そして、この暗黙のopenの時$ARGVに開くファイルの名前を入れる。
ここまで分かれば>>148の動作も理解できるだろ?
つーかどのような経緯で>>148のようなコードを書くことになったのか非常に興味がある。
普通のスクリプトでそんなコードがあったら素で作者の正気を疑うぞ。
0151ちょー素人
04/04/11 19:23ID:UpvZGEBTこの使い分けの意味がよく分かりません。
サーバーによって使える言語が違うということでしょうか?
0152148
04/04/11 19:25ID:???明確な違いを知りたかったので
自分で書いてみますた
もっと分かりやすい
スクリプトあれば教えてくだされ
0155nobodyさん
04/04/11 20:53ID:???今から勉強するとしたら何を学んだほうがいいのでしょうか?
ちなみに会社ではパルとPHPがメインみたいです。
0157nobodyさん
04/04/11 21:07ID:???マジレスすると、「なにをやりたいか」による。
会社でPerlとPHPがメインなら、そっちに磨きをかけた方がいいかもしれない。
会社がその後、ASP.NETなんかに転ぶ可能性があるなら、今のうちに勉強しておくのもいいかもしれない。
それよりもそろそろPerlのコーディングの質問はこないものか。
0158nobodyさん
04/04/11 21:15ID:???>>152もこれ見て分からなきゃ「初めてのPerl」を百回読め
# 初めて<ARGV>とされた時に呼ばれる関数
sub __initialize_argv__{
unless(defined fileno ARGV){
@ARGV = ('&STDIN') unless @ARGV;
$__internal_index__ = 0;
$ARGV = $ARGV[$__internal_index__++];
open ARGV, $ARGV
or die "Can't open $ARGV: $!";
}
}
# <>;
__initialize_argv__();
<ARGV>;
あとはARGVがEOFに達すると自動的に$ARGV[$__internal__index++]をopenするというわけだ。
0163nobodyさん
04/04/11 23:31ID:???if (!-e image/$new){
mkdir("image/$new",0777);
chmod(0777, "image/$new");
}
0164nobodyさん
04/04/11 23:34ID:???0165163
04/04/11 23:42ID:???理由は
if (!-e image/$new){
が
if (!-e "image/$new"){
にするのわすれてました・・・。゚(゚´Д`゚)゚。
0166nobodyさん
04/04/12 02:29ID:???if (mkdir("image/$new", 0777)) {
chmod(0777, "image/$new");
}
elsif (!-d "image/$new") {
die;
}
■ このスレッドは過去ログ倉庫に格納されています