【Perl】初心者コーナーPart11
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
02/03/27 12:53ID:wAXxxOxPいらっしゃーい、Perlの「コーディング」で困ってる人のスレです。
1:自分はこう言う事がしたい。
2:それでこんな風にやってみたが・・・
3:それだとこんなエラーが出て上手く行かなかった。
1と3が無いと誰も答えられないよ、良い回答は良い質問から。
一緒に勉強しましょう。
参考書籍はこちら【【Perl,CGI】参考書籍 第2版 】
http://pc.2ch.net/test/read.cgi/php/988809842/
CGIの質問はこちら【CGIだけどなんか質問ある Pert 5.01 】
http://pc.2ch.net/test/read.cgi/php/1015127347/l50
その他の雑多な話題は、【CGIに依存しないPerlの話題一般】
http://pc.2ch.net/test/read.cgi/php/991313362/
過去ログ、その他の役立ち情報は>>2-10を見よう。
0002nobodyさん
02/03/27 12:54ID:wAXxxOxPPart1 http://tako.2ch.net/test/read.cgi?bbs=perl&key=957208980 参照不能
DAT: http://tako.2ch.net/perl/dat/957208980.dat
Part2 http://tako.2ch.net/test/read.cgi?bbs=perl&key=971817087 参照不能
DAT: http://tako.2ch.net/perl/dat/971817087.dat
Part3 http://tako.2ch.net/test/read.cgi?bbs=perl&key=979894521 参照不能
DAT: http://tako.2ch.net/perl/dat/979894521.dat
Part4 http://tako.2ch.net/test/read.cgi?bbs=perl&key=984430156 参照不能
DAT: http://tako.2ch.net/perl/dat/979894521.dat
Part5 http://pc.2ch.net/php/kako/988/988728069.html
Part6 http://pc.2ch.net/test/read.cgi/php/996075607/
Part7 http://pc.2ch.net/php/kako/1000/10002/1000267444.html
Part8 http://pc.2ch.net/php/kako/1003/10039/1003900311.html
Part9 http://pc.2ch.net/test/read.cgi/php/1009549309/
Part10 http://pc.2ch.net/test/read.cgi/php/1014556702/
[ひまぢん氏のミラー]
Part1 http://www.angelfire.com/ak5/2ch-web-program/kako/957208980.html
Part2 http://www.angelfire.com/ak5/2ch-web-program/kako/971817087.html
Part3 http://www.angelfire.com/ak5/2ch-web-program/kako/979894521.html
Part4 http://www.angelfire.com/ak5/2ch-web-program/kako/984430156.html
Part5 http://www.angelfire.com/ak5/2ch-web-program/kako/988728069.html
0003nobodyさん
02/03/27 12:54ID:wAXxxOxP・Perl Com: http://www.perl.com/pub/
・CPAN.com: http://search.cpan.org/
・ActivePerl: http://www.activestate.com/
・CGI-ML:http://forest.ne.jp/cgi-ml/
[お薦め]
・Perl Recipes: http://www.effectiveperl.com/recipes/
・Perlメモ: http://www.din.or.jp/~ohzaki/perl.htm
・Randal's WebTechniques columns: http://www.stonehenge.com/merlyn/WebTechniques/
・Perlの部屋: http://www.cc.rim.or.jp/~midorin/mad-p/perl/index.html
・Perl初心者の部屋:http://www.harukaze.net/~mishima/perl/
・Perlリファレンス:http://www.big.or.jp/~mio/ga/pl/plref/pl_ref.htm
・Perlのページ:http://homepage1.nifty.com/nomenclator/perl/
[Document&Tutorial]
・Perl News: http://www.news.perl.org/
・Perl Monks: http://www.perlmonks.org/
・PerlMonth - Online Perl Magazine - : http://www.perlmonth.com/index.html 接続不能
・use Perl All The Perl: http://use.perl.org/
・Learn Perl - Perl Education: http://www.devdaily.com/perl/edu/index.shtml
・Perldoc.com: http://www.perldoc.com/
・Using Perl5 in Web: http://docs.rinet.ru/Using_Perl5_in_Web/
・Rex Swain's Home Page: http://www.rexswain.com/
・Robert's Perl Tutorial: http://www.netcat.co.uk/rob/perl/win32perltut.html
・Perl Tuts: http://savage.net.au/Perl-tutorials.html
・Beginning Perl Tutorials: http://www.pageresource.com/cgirec/index2.htm
・jcode.pl の私的な解説書: http://www.mikeneko.ne.jp/~lab/kcode/jcode.html
・Logical Choice Software, Home Page: http://www.logsoft.com/perltips/
・Perlfect Solutions: http://perlfect.com/
・The Perl Archive : http://www.perlarchive.com/
・Perl6 & Parrot VM についての情報: http://dev.perl.org/perl6/
0004nobodyさん
02/03/27 12:54ID:wAXxxOxP・Perl Module Reference: http://www.bekknet.ad.jp/~bero/docj/module_/
・PPMPackages: http://www.activestate.com/PPMPackages/
・河馬屋二千年堂's Page: http://member.nifty.ne.jp/hippo2000/index.htm
[Security]
・安全なプログラミングのためのガイドライン:http://www.FreeBSD.org/ja/security/#spg
・Perl security:http://www.perldoc.com/perl5.6/pod/perlsec.html
・Perl security和訳:http://www.kt.rim.or.jp/%7ekbk/perl5.005/perlsec.html
・CGI and Security http://www.ansi.co.jp/tech/cgi/security/
・The Unofficial Web Hack FAQ:http://www.nmrc.org/faqs/www/
・How to Write Secure Code:http://www.shmoo.com/securecode/
・Safe CGI Programming :http://www.improving.org/paulp/cgi-security/safe-cgi.txt
[OS]
・Linux日本語マニュアル:http://www.linux.or.jp/JM/
・FreeBSD日本語マニュアル:http://www.jp.freebsd.org/man-jp/
0005帝国 ◆JXzsccCc
02/03/27 12:58ID:BFIdDUdC991 名前:製作板で誘導した人 本日の投稿:02/03/27 12:14 ID:???
$permissionの中身は何?
てかパーミッション設定するのに変数使う必要あるんだろうか・・・・
$file="\.\/$folder\/$filename";
chmod 666,$file;
とかじゃダメ?
992 名前:nobodyさん 本日の投稿:02/03/27 12:26 ID:???
nobodyに0700にされる罠。
993 名前:帝国 ◆9qoWuqvA 本日の投稿:02/03/27 12:39 ID:BFIdDUdC
パーミッションはフォームにいれた値。
だから変数に格納する必要が。。
994 名前:nobodyさん 本日の投稿:02/03/27 12:44 ID:???
パーミッションは8進数で設定するのは別に罠ではないという罠。
立たぬなら 立つまでまとう Perlスレ
0006nobodyさん
02/03/27 13:02ID:???とりあえず、変数に入れずに試してみろ。
自分でも原因究明する努力は忘れずに。
>1:自分はこう言う事がしたい。
>2:それでこんな風にやってみたが・・・
>3:それだとこんなエラーが出て上手く行かなかった。
これ重要。
0007nobodyさん
02/03/27 13:08ID:???頭に0を付ければ8進数として解釈するんでないかい?
0008帝国 ◆JXzsccCc
02/03/27 13:32ID:BFIdDUdC0009nobodyさん
02/03/27 13:36ID:???umask(0);
じゃあ、これをファイル作成の前においてみて。
0010nobodyさん
02/03/27 15:56ID:yW5j0qTy配列を送ろうとすると、パラメータが混ざってしまいます。
回避方法はありませんでしょうか
local ( @aaa , $bbb ) ;
@aaa = ( 0 , 1 , 2 , 3 ) ;
$bbb = "4567" ;
&test( @aaa , $bbb ) ;
exit ;
sub test
{
local ( @aaa , $bbb ) = @_ ;
print "\@aaa=@aaa\n" ;
print "\$bbb=$bbb\n" ;
}
このソースを実行しますと。
@aaa=0 1 2 3 4567
$bbb=
となります。
これを。
@aaa=0 1 2 3
$bbb=4567
このようにしたいのですが
0011nobodyさん
02/03/27 15:59ID:???最初の要素で@aaaの要素数を渡しておけば?
0012
02/03/27 16:05ID:lRPZasZ4今練習でCHATを本のサンプルから作っているのですが、
&ReadPars(*in)
という入力があるのですが、この「*in」とはどのような意味なのでしょう?
もし宜しければご教授ください。
0013nobodyさん
02/03/27 16:06ID:???ってかなぜmyじゃなくてlocal?
0014こちらも初心者
02/03/27 16:14ID:???フォームから渡されるデータを格納するハッシュの名前
&ReadParse(*in);
とするとフォームから渡されたデータが
%inというハッシュに格納される
で良いですよね?>諸先輩方
001513
02/03/27 16:25ID:lRPZasZ4ありがとうございます。
ReadParseというサブクラス(?)に定義されているハッシュに格納するコードを
呼び出してそこに「in」の値を渡し、結果として%inとなるという事ですよね?
では「*」とはどういう意味なのだろう・・・
すいません、せっかく教えていただいているのに・・・
もし宜しければそのあたりが詳しく書いてあるサイトを教えていただけないでしょうか?
検索をかけてもヒットする単語が多すぎて検索できないのです。
001613
02/03/27 16:35ID:???inが関係ないという事で検索する事ができました。
*とはいろいろな変数の型を纏めて扱えるようになるものだったのですね(語弊あり?)
お邪魔いたしました。
0017nobodyさん
02/03/27 16:40ID:???こんな時代遅れのことをやると恥ずかしいので、忘れた方がいいですよ。
001810
02/03/27 16:42ID:yW5j0qTy>普通はリファレンス使うと思う。
>ってかなぜmyじゃなくてlocal?
myでのパラメータ渡しの記述例
お教えいただけませんか、よろしくお願いします。
002010
02/03/27 17:23ID:yW5j0qTyレスありがとう御座います。
早速試してみました。
>localをmyに変えれば?
my ( @aaa , $bbb ) ;
@aaa = ( 0 , 1 , 2 , 3 ) ;
$bbb = "4567" ;
&test( @aaa , $bbb ) ;
exit ;
sub test
{
my ( @aaa , $bbb ) = @_ ;
print "\@aaa=@aaa\n" ;
print "\$bbb=$bbb\n" ;
}
実行結果:
@aaa=0 1 2 3 4567
$bbb=
残念ながら結果は、変わりませんでした。
>そして本屋に行ってPerlの本でも買えば?
ご指摘ありがとう御座います。
先程、www.amazon.co.jpにて
プログラミング Perl (オライリー社)
Effective Perl (ASCII 社)
の2冊購入いたしました。
002110
02/03/27 17:41ID:yW5j0qTymy ( @aaa , $bbb ) ;
@aaa = ( 0 , 1 , 2 , 3 ) ;
$bbb = "4567" ;
&test( \@aaa , \$bbb ) ;
exit ;
sub test
{
my ( $aaa , $bbb ) = @_ ;
print "\@aaa=$$aaa[ 0 ] $$aaa[ 1 ] $$aaa[ 2 ] $$aaa[ 3 ] \n" ;
print "\$bbb=$$bbb\n" ;
}
実行結果:
@aaa=0 1 2 3
$bbb=4567
http://www13.cds.ne.jp/~ohsaru/perl/perlref.html
こちらのページが大変参考になりました。
0022nobodyさん
02/03/27 19:03ID:???レスキューやKENTのようなヘボの模倣しないで、プロトタイプ使えって。
sub manco(\@$)
{
print "$_[0]->[0]\n";
print "$_[1]\n";
}
@a = qw(1 2 3 4 5);
manco(@a, 10);
002310
02/03/27 21:15ID:???ようきけや、22よ、
君いつもいるね。
いつもそんなことばかりやっているね。気付いてるかい?
はっきり言って誰も君のこと相手にしてないよ?わかってるの?
それって、自分ではおもしろいと思ってやっいているんだろうね。
きっと、薄ら笑い浮かべてやっているんだろうね。
でもさぁ、君以外の人には全然おもしろくないんだよ。
もしかして自分でもおもしろくないのにやっているんじゃないの?
自分でも何してるのかわからなくなってるんじゃないの?
家族からも近所からも煙たがられているんだね。
友達も彼女もいないんだね。会社でも浮いているんだね。
どこに行っても相手にされないんだね。
ネットでも無視されてここに流れ着いて来たんだね。
ここでさえ相手にされてないじゃん。どうするの?かわいそうに。
もう駄目じゃん。生きていても何もいいことないよ?
どうせ誰からも相手にされないんだから、死んだ方がいいんじゃない?
相手にされないから奇抜な言動で注目を浴びようと必死なんだね。
始めは少し注意を向けてもらったのだろうけど、もう飽きられて完全に 無視されているね。
おもしろくもないのに、意味不明な事を大量に書かれても目障りなんだよね。
それって迷惑なんだよ?気付いてる?
さようなら。この世から消えてくれ。君いるだけで迷惑。
せめて最後ぐらい人里離れた山の中で自殺してね。
002410
02/03/27 22:18ID:yW5j0qTyプロトタイプ宣言についてですが、
@array = ( 'a' , 'b' , 'c' , 'd' ) ;
$str = "4567" ;
test( \@array , $str ) ;
exit ;
sub test(\@$)
{
my @aaa = $_[ 0 ] ;
my $bbb = $_[ 1 ] ;
print "$aaa[ 0 ]:$aaa[ 1 ]:$aaa[ 2 ]:$aaa[ 3 ]\n" ;
print "$bbb\n" ;
}
実行結果:
a:::
4567
こんな感じに変更してみたのですが、
testへの最初の引数の配列が正しく
@aaaに渡りません。
$_[ 0 ][ ? ]だと問題無く参照できるのですが、
どこか間違ってますでしょうか
0025nobodyさん
02/03/27 22:30ID:???プロトタイプは呼び出し前に宣言したヤツしか反映されない。
sub foo( prototypes );
foo(args);
sub foo( prototypes ){
...
}
0027nobodyさん
02/03/27 23:28ID:???まともに説明もできないのかこのガラクタが!!
0031nobodyさん
02/03/28 00:08ID:???どうやらオマエは説明もできないのに使ってるようだナ!
知ったかぶりがバレてしまって顔が青ざめて必死になって今調べている姿が
目に浮かぶな! 実にこっけいなピエロ君だなオマエは!
無力なオマエは周りの人たちから陰であざ笑われていることさえも気づかずに
一生を過ごしていく、そんなちっぽけな存在のまま残り少ない人生をひっそりと
過ごしていかなければならないオマエの存在価値は小さ過ぎてどうでもいいことだ。
ただ、いまおれに相手してもらえたことだけでもありがたく思って寝ろ!
0034nobodyさん
02/03/28 00:25ID:???sub foo ($) {
$_[0] == 0 or &foo($_[0] - 1);
print $_[0];
}
foo 10;
sub bar ($) {
$_[0] == 0 or bar $_[0] - 1; # error
print $_[0];
}
bar 10;
0035nobodyさん
02/03/28 00:30ID:???sub bar($);
sub bar ($) {
$_[0] == 0 or bar $_[0] - 1;
print $_[0];
}
0036nobodyさん
02/03/28 00:34ID:???あ、なるほど。勉強になります。
0037nobodyさん
02/03/28 05:37ID:Zku7n2ykPerlのスクリプトって、いったん全部をコンパイルしてから処理をするのでしょうか?
それとも、そのルーチンで必要な部分だけピックアップしてコンパイルするのでしょうか?
なんでこんな質問をするかといいますと、
if ($hoge) { require "hoge.pl"; &hoge(); }
といったソース書いたとします。
$hogeがtrueにならなかったときには、hoge.plの中にエラーがあっても、
警告されないような気がするんです。
だとするのなら、ケースによって全く異なる処理になるようなルーチンは、別のファイルで
作成した方が、スクリプト自体が小さくなり、より高速に処理が終了するのかな?
という風に想像しているのですが。
「むしろrequireで呼び出すファイル分ディスクアクセスが発生したりいろいろで、
その場合は遅くなる」
という風な想像もあったりするのですが、その辺みなさんはどうお考えなのか、
ぜひお教え下さい。
■ このスレッドは過去ログ倉庫に格納されています