くだすれPerl(超初心者用)at PHP
くだすれPerl(超初心者用) - 暇つぶし2ch562:nobodyさん
07/12/14 06:41:05
>>561
匿名掲示板だからといって、いい加減なこと言わない方がいいよ。  
今まで何度匿名掲示板で犯罪予告して逮捕されたか、知っているの?  
偽計業務妨害で逮捕されろ。  

563:nobodyさん
07/12/14 15:25:54
>>562 m9(^Д^)プギャーーーッ

564:nobodyさん
07/12/14 21:44:19
聞きづらい雰囲気だ(笑
CGIなんだけど、あるディレクトリの中身を全消去してから、
そのディレクトリ自体を消去するしようとしているんだけど、ディレクトリの消去がうまくいかない。

$dir = "./abc/hoge/";

opendir DIR, $dir;
@files = grep { !m/^(\.|\.\.)$/g } readdir DIR;
closedir DIR;

$flag = @files;

if ( $flag ) {
foreach $file ( @files ) {
unlink "$dir$file";
}
}

rmdir ("abc/hoge");

rmdirの使い方を間違ってるかと思って、中身入っていないabc/hoge2で試してみると消えてくれた。
どうやらunlink→rmdirの流れが悪いのかと思って、sleepで5秒間止めてみたけど、何も変わらなかった。。。
誰かわかる人いる??検索しても全然わからんかった。。。

565:nobodyさん
07/12/14 21:47:56
>>564
匿名掲示板だからといって、いい加減なこと言わない方がいいよ。   
今まで何度匿名掲示板で犯罪予告して逮捕されたか、知っているの?   
偽計業務妨害で逮捕されろ。   

566:nobodyさん
07/12/15 01:11:18
こんなんじゃダメ?

use Cwd;
my $dir = "/abc/hoge/";
my $cwd = Cwd::getcwd();

execcommand("/bin/rm -r $cwd/$dir");
exit;

sub execcommand
{
my $cmd = shift;
my $err = '';
my @envbak = ($ENV{'IFS'}, $ENV{'CDPATH'}, $ENV{'ENV'}, $ENV{'BASH_ENV'}, $ENV{'PATH'});
delete @ENV{'IFS', 'CDPATH', 'ENV', 'BASH_ENV', 'PATH'};
eval{
system( $cmd );
};
if ($@) {$err = $@;}
$ENV{'IFS'} = $envbak[0];
$ENV{'CDPATH'} = $envbak[1];
$ENV{'ENV'} = $envbak[2];
$ENV{'BASH_ENV'} = $envbak[3];
$ENV{'PATH'} = $envbak[4];
return $err;
}


567:564
07/12/16 19:49:12
>566
ありがとうございます。
参考にさせていただきました。

568:nobodyさん
07/12/17 22:02:42
質問させてください。
mimew.pl というファイルを公開している所が見つからないのですが、
なんとか入手する方法はないでしょうか?

569:nobodyさん
07/12/17 22:08:17
>>568
多分これ。保証はしない。
つ[ URLリンク(ambiente.okayama-u.ac.jp) ]

570:nobodyさん
07/12/17 23:05:24
保証してください

571:568
07/12/17 23:13:17
>>569
早急な対応ありがとうございます!
無事メールフォームCGIを動かす事が出来ました!!
本当にありがとうございました!

572:nobodyさん
07/12/17 23:22:17
宣伝乙

573:nobodyさん
07/12/18 08:03:18
ハッシュ配列の各要素をリファレンスとして関数の引数に渡したいのですが
よくわからなくて試行錯誤の末下のような方法にたどり着きました

$AA{'name'} = '1234';
$BB[0]{'name'} = 'abc';
$BB[1]{'name'} = 'ああああ';
$BB[2]{'name'} = '!?';

kansuu( \%AA );
$tmp = \@BB;
kansuu( ${\$tmp->[0]} );
kansuu( ${\$tmp->[1]} );
kansuu( ${\$tmp->[2]} );

sub kansu
{
  my $h = $_[0];
  print "$h->{'name'}<br>";
}

BBの要素を kansuu() に入れるために
もっとスマートな方法(っていうか正しい書式)がありましたら教えてくれないでしょうか?

574:nobodyさん
07/12/18 19:13:55
Perlがプログラミング言語ということぐらいしか分からない初心者です。
ウインドウズXPを使っています。
ActivePerlでコマンドプロント上でppmを使ってImage::ExifToolをインストールしようとしたのですが

>ppm install failed: DBI connect(~) failed: unable to open database file(1)

と出てインストールできませんでした。
DBIをどうにかしたらよいとは思うのですがよく分かりません。
どうしたらよいのでしょうか?
ご教授お願いします。


575:nobodyさん
07/12/18 21:22:12
そんくらいぐぐれ

576:574
07/12/19 19:22:29
聞き方が悪かったですね。
具体的な問題点は
・ppmはActivePerlをインストールしただけでは使えない?
・DBIとか落としてきてもどうやってインストールしたらいいのか分からない。
・そもそもPerlの作業をどこで行ったらいいか分からない。
 (コマンドプロントでuseをしてもなんにも起こらない←間違っている?)
・つまるところプログラミングのイロハが分からない。

スレ違いというやつですか?

577:574
07/12/19 19:37:06
で、何がやりたいかと言いますと、これです↓
URLリンク(www.fenrir.co.jp)
つまずいたのは2のところです。

578:nobodyさん
07/12/19 21:36:49
>>576
スレ違い

579:nobodyさん
07/12/19 23:17:02
・ppmはActivePerlをインストールしただけでは使えない?
使える
・DBIとか落としてきてもどうやってインストールしたらいいのか分からない。
ppmを使う
・そもそもPerlの作業をどこで行ったらいいか分からない。
 (コマンドプロントでuseをしてもなんにも起こらない←間違っている?)
まずテキストエディタで書いて保存する
・つまるところプログラミングのイロハが分からない。
あっそ

580:nobodyさん
07/12/21 01:37:26
>>574
WebProgramingに無関係。板違い。誘導。

Perlについての質問箱 33箱目
スレリンク(tech板)l50


581:574
07/12/21 21:47:22
>>580
ありがとうございます。
そちらにもスレがあったんですね。
ご迷惑をお掛けしました。

582:nobodyさん
07/12/22 00:59:24 +1+1pRnk
こんちは

8 9 10 ってファイル読み込んで

8 9  って出力するにはどう書けばよいですかね

583:nobodyさん
07/12/22 01:26:23
ふむ

584:nobodyさん
07/12/22 02:11:54 At3tOlJk
わかります?

585:nobodyさん
07/12/22 03:40:10
10が必要ないのか二桁の物が必要無いのか
読み込んだファイルの三ツ目の物が必要無いのか
読み込んだファイルの最後の物が必要無いのか
条件が分からなければ判別のしようが無い

586:nobodyさん
07/12/22 04:19:02 At3tOlJk
読み込んだファイルの最後の物が必要無い
です
ほんとありがとうございます(泣)

587:nobodyさん
07/12/22 21:44:20
8 9 10ってのはファイルの内容か?ファイルの名前か?・・・まあ内容だろうな。
8 9 10ってのは毎回8 9 10なのか?・・・毎回同じってわけじゃないだろうな。
区切りはスペースだけ?タブも?ファイルの中に改行はあるの?



588:nobodyさん
07/12/22 22:22:37
質問だけ見てもきみにゃPGは向いてないことが分かるからやめとけ

589:nobodyさん
07/12/23 04:25:06 nSEv05U9
ごめんやめない がんばる
8 9 10ってのはファイルの内容で
8 9 10ってのは毎回同じってわけじゃないです。
区切りはスペースだけ

590:nobodyさん
07/12/23 05:02:25
自分で作る気があるなら、どこまで作ったか晒せ。

自分で作る気がないなら、仕様をまとめなおして、↓こっちで聞け。
Perlでリクに答えるスクリプトを作るスレ
スレリンク(tech板)l50


591:nobodyさん
07/12/23 08:20:22
返答の意図が分かってないだろ。
まず基礎を学べ。
んですぐ人に答えを求めようとせず頭使って考えれ。

592:nobodyさん
07/12/23 10:02:40 01+8BPxk
半年ぶりに書こうと思ったら驚くほどPerlに関する記憶が飛んでる
記憶をよみがえらせる方法を教えてくれ

593:nobodyさん
07/12/23 10:05:44
とりあえずスクリプト眺めたり、ちょっと書いたりしてるうちによみがえるんじゃね?
それができないなら、アルツハイマ-かもしれないから病院に逝ったほうがいいな

594:nobodyさん
07/12/24 01:41:03 yCHoznYX
漏れも吹き飛んだ
1からじゃ何も書けなくなったw

595:nobodyさん
07/12/24 07:17:33
PerlとPHPで開発してると、やっぱりPerlの方が書きやすいな。
PHPなのに、気がついたら途中からPerlになってたよw

596:nobodyさん
07/12/24 12:07:01
質問です。
ファイルをオープンし、それを一旦最後まで読み込んだ後、
またそのファイルを最初から読み取りを行いたい場合は、
一度ファイルを閉じるしか方法がないのでしょうか。
ファイルで閉じたり開いたりを多く行うと、処理が重くなったり、
ファイルの競合で問題が起きるので、出来れば避けたいのですが。

<コーディングの例>
# ファイルを開く
open ( FL, "dat.csv" );
# ファイルを最後まで読む。
while( $line = <FL> ){
# 何らかの処理
}
close( FL );
open ( FL, "dat.csv" );
# ファイルを最後まで読む。
while( $line = <FL> ){
# 何らかの処理
}
close( FL );

597:nobodyさん
07/12/24 12:52:16
ファイルの競合で問題ってのが意味わからんが
やりたいことはseekでできる

598:596
07/12/24 13:19:13
>>597
seekで検索してみたところ、すぐに見つかりました。
ありがとうございました。

ファイルの競合で問題というのは、ファイルのロックで
解決することなので、ここでは関係ありませんでした。

599:nobodyさん
07/12/24 16:29:55
Perl5からオブジェクト指向が導入されたということですが、
Perlのプログラマーは、オブジェクト指向プログラミングを
メインで行っているのでしょうか。
それとも、処理速度や安定性、多くの環境下で動く、Perl4互換の
構造化プログラミングをしているのでしょうか。

多くの方はどちらでやっているのかを知りたいです。

600:nobodyさん
07/12/24 16:54:59
>それとも、処理速度や安定性、多くの環境下で動く、Perl4互換の
>構造化プログラミングをしているのでしょうか。
の部分が突っ込みどころ満載だが、それは使っていくうちに知ってもらうことにして、
とりあえず、Perl5が出てから10年以上たっているので、Perl4の互換性を気にする必要は全くない。
オブジェクト指向も、使いたくないなら使わなくていい。

601:nobodyさん
07/12/24 17:02:48
>>600
ありがとうございました。

602:nobodyさん
07/12/24 17:22:38
>>599
「多くの方」はダウソしたcgiをうpしてパーミッション設定するだけだろ。
中途半端な知識でオブジェクト指向を目指すと余計に意味わかんないプログラムになる。

オブジェクト指向の考え方とPerlでのオブジェクト指向の実装方法を十分理解してないなら
オブジェクト指向に手を出さない方が良い。

603:nobodyさん
07/12/25 10:20:04
>>602
レスありがとうございます。
ちょっと確認をしたくて質問なのですが、
PerlでCGIを行う場合に限定すると、サーバのメインメモリにいつまでも
情報が残るわけではないので、オブジェクト指向プログラミングは、
状態の保存などを生かしたものというより、モジュール化を行い、
関数名やグローバル変数名が競合するのを防ぐ程度の意味合いしかないように
思うのですが、この解釈はあっているのでしょうか。

604:nobodyさん
07/12/25 11:34:27
それはオブジェクト指向プログラミングの利点の1つではあるが全てではない。
かといって全部ここに書いてるとキリが無いからググってこい。

っていうか結局何が知りたいんだ? どんな答えが欲しいんだ?

605:nobodyさん
07/12/26 06:07:36
サーバのメモリにいつまでもプロセスとして残る場合もあるよ。

606:nobodyさん
07/12/26 12:46:37 SU+LBgfr
perlで最規模なCGIゲーム(有名な箱庭やFFA以上)を作ろうと猛勉強してるのですが
まったくの初心者なのでサーバーに対する負荷とかまったく考えていませんでした。

そこで疑問点が3つあります。
・MySQLが軽いとかよく聞くのですが、
 本気でCGIゲームを開発する場合サーバーの負担を抑えるためどういう勉強をしていったほうがいいのでしょうか?
・perlではなくphpのほうに切り替えたほうがいいのでしょうか?
・プログラムを書き終えてperl or phpを実践した後でもMySQLに対応するのは簡単なんでしょうか?
(難しそうなのでperl or php→MySQLではなくプログラムを書き終えた後にMySQLをやったほうが
モチベーションも保てるかと思って。)

phpの話題もでてますが、今はperlのほうを勉強していてこちらのほうが聞きやすいと思って。
よければご教授よろしくお願いいたします。

607:nobodyさん
07/12/26 12:52:25 SU+LBgfr
×最規模→○大規模

608:nobodyさん
07/12/26 14:37:40 9oL1uy7O
レンタル掲示板などで、
URLリンク(www.)○○.com/?uid=▲▲▲
見たいなURLがあるのですが
これを
http://▲▲▲.○○.com/
にしたいと思っています。
これを実現するにはどのような手段が用いられるのでしょうか?
ご指導や参考URLを頂ければ幸いです。
よろしくお願いします。

609:nobodyさん
07/12/26 18:35:59 8VJWqxjl
>>606
すいません
prog板初心者スレで聞いてみます、スレ違いだったかな

610:nobodyさん
07/12/26 22:20:24
>>608
perlよりもウェブ鯖で変換した方がいい
apacheならmod_rewriteとかを使う

611:nobodyさん
07/12/27 14:37:45
>>604
ありがとうございます。

聞きたかったのは、Apache + Perl でプログラムする際、
オブジェクト指向で組むと、利便性があがるかどうか、
という点です。
ネット上のサンプルソースでも、オブジェクト指向
で組まれていなかったので、何らかの理由があり、
さほど利便性がないのかと思ったのです。

できましたら、この、「何らかの理由」もあわせて
回答をいただけたらと思っています。
オブジェクト指向一般の利便性については、自分で調べますが。

612:nobodyさん
07/12/27 14:43:25
>>605
それは、サーバのエラーや、Perlなどのプログラムミスによる
ものということですよね?

そのメモリに残ったプロセスを利用してということは
ないと解釈していたのですが。

613:nobodyさん
07/12/27 15:08:55
>>612
mod_perl + DBI なんかでは、コネクションプーリング出来たりとか
そんなんじゃないのかね?

614:nobodyさん
07/12/27 17:41:06
perlにて、「use strict」を書くとエラー(500)となってしまいます。
これをコメントアウトすると、正常に動いていますので、
パーミッションなどの設定が原因ではないと思います。
疑われる部分はどんなことがあるのでしょうか。

615:nobodyさん
07/12/27 17:46:33
すみません。質問です。
package関連の記述方法についてです。
定義したクラスのメソッドにおいて、そのクラスがもつ別のメソッドを
呼び出すということは出来ないのでしょうか。

package ClassA;

sub funcA{
 print "test";
}

sub funcB{
 &funcA;
}

などと記述してみたのですが、エラーがでてしまいます。
&ClassA::funcA; としてもダメでした。

616:nobodyさん
07/12/27 17:57:54
全角スペースでインデント(字下げ)したらエラーになるよ

617:nobodyさん
07/12/27 19:24:37
>>614
error_logにみんな書いてある。

618:nobodyさん
07/12/27 19:37:01
>>616
全角スペースでインデント(字下げ)してるのは、2chで
見やすくするためです。先頭に半角だと無視されますからね。

619:nobodyさん
07/12/27 21:40:34 HdAuax/Z
>>593
うむ。書くしかないよな

620:nobodyさん
07/12/27 23:08:07
>>615
最後に 1; を書いてみ

621:nobodyさん
07/12/28 00:51:11
>>620
レスありがとうございます。
最後に「1;」は書いてます。
メソッド呼び出し部分をコメントアウトすると
動作はするので、メソッド呼び出し部分がおかしいのでは、
と思うのです。
メソッド呼び出しを記述すると、動きはするのですが、
そこで停止してしまうのです。
念のための確認ですが、同じクラス内のメソッド呼び出しの
記述方法はこれであっているとみてよいのでしょうか。
それとも、「ClassA::funcA」などと記述すべきなのでしょうか。

622:nobodyさん
07/12/28 02:36:45
>>621
ウチの環境で、上のコードそのままやってみたけど、
&funcB();
で、ちゃんと'test'と出力されたべ。

呼び出し側のスクリプトの問題じゃないのかな?
以下呼び出し側。

use ClassA;

ClassA::funcA();
ClassA::funcB();

---出力----
test
test

環境 WinXp SP2 ActivePerl 5.8.8-build822
This is perl, v5.8.8 built for MSWin32-x86-multi-thread

623:nobodyさん
07/12/28 02:51:08
>>611
ていうかオブジェクト志向のメリット、デメリットを勉強すれば
ネット上のサンプルソースの例が少ない理由はすぐわかる。

624:nobodyさん
07/12/28 13:27:40
質問です。
継承に関して、ネットを調べていると、コードの書き方が
2通りあるようですが、これはどういう解釈をしたらよいのでしょうか。

ClassAが継承もととなる場合
use base qw( ClassA );
@ISA = qw ( ClassA );

use base qw()を使う方法
URLリンク(www15.plala.or.jp)
URLリンク(www.rwds.net)

@ISAを使う方法
URLリンク(www.rfs.jp)
URLリンク(bulknews.net)

一方の書き方が古いという類なのでしょうか。
それとも、継承においては特に出てこない、何か違う意味が
含まれているのでしょうか。

お願い致します。

625:nobodyさん
07/12/28 14:37:39
今までVisual Basic や java をやってきていた者です。
Perlの場合以下のようにドキュメントとしてコーディング規約は
まとめられてないのでしょうか。
URLリンク(www.objectclub.jp)

626:nobodyさん
07/12/28 18:56:10
>>624
perldoc base
>>625
ない

627:nobodyさん
07/12/29 00:20:43
>>622
もう一度0からコードを書き直してやってみたら
動きました。
何が悪かったのだろう・・・
全角スペースが入ったりしていると、赤く表示が出る
エディタを使っているのですけどね。
原因が分かりませんが、質問の内容は解決しました。
ご迷惑をおかけしました。

628:nobodyさん
07/12/29 09:32:18
>>623
Perlのオブジェクト指向を調べてみたのですが、なんだか
完全にオブジェクト指向に対応した言語ではなく、
package や ハッシュ を用いて工夫してオブジェクト指向を
実現してるみたいなものですね。
メンバやメソッドにも外部からのアクセス制限をかけたり
出来なさそうだし。

PerlをCGIでやる場合は、まず、GETやPOSTを取得して
どの関数に飛ぶのかを判定し、その関数を書いていくという
処理しかないので、構造化とさほどかわらないのかもと思いました。

ありがとうございました。

629:625
07/12/29 11:06:25
>>626
どうしてないのでしょうか。
Perlは歴史が長い分、何かノウハウを集めたものがあるかと思ったのですが。

630:nobodyさん
07/12/29 11:19:00
>>629
オマエが作れよ
俺は無視するが

631:nobodyさん
07/12/29 14:02:28
ハッシュを宣言し、それを関数に渡す処理をしたいのですが、
Perlのサイトにはそのサンプルが載っていなかったので、
自分なりにコードを書いてみました。
URLリンク(www.rfs.jp)
URLリンク(www.site-cooler.com)

関数に渡すときのコードの書き方や、受けるときのコードの書き方において、
これが偶然動いているだけなのか、不安になって質問してみました。
書き方は基本的にこれで良いのでしょうか。
やりたいことは、「ハッシュと数値を受け取り、処理を行う関数を
定義すること」です。

sub tt(){
my %t = @_;
print $t{"水"};
print "\n";
print $_[1];
}

%c;
$c{"月"} = 1;
$c{"火"} = 2;
$c{"水"} = 3;

&tt(%c,1);

632:nobodyさん
07/12/29 15:00:37 CoF2fqIA
sub tt {
my ($t,$n) = @_;
print $t->{"水"};
print "\n";
print $n;
}

%c;
$c{"月"} = 1;
$c{"火"} = 2;
$c{"水"} = 3;

&tt(\%c,1);

633:631
07/12/29 15:52:15
>>632
すばやいレスありがとうございます。
いろいろ試してみて気づいたのですが、$_[1]としても、
2番目に指定した引数が取れるわけではないのですね。
今回は偶然$c{"月"}の1が表示されていただけなのには
気づきませんでした。
あと、ハッシュを関数に渡す場合は参照渡しの方が良いのですね。
非常に助かりました。

634:nobodyさん
07/12/29 17:19:50
>>626さんくす

635:nobodyさん
07/12/29 20:00:55
>>629
Perlベストプラクティス



636:nobodyさん
07/12/29 20:26:23
>>629
理由は大まかに言って、
・ コーディングの自由度の高さこそがPerlの特徴
  → コーディング規約で縛ったらPerlらしくない
・ Perlのコーディングスタイルとしてキーストロークをいかに減らすかを重視するスタイルが存在する
  → キーストロークを減らす派にとってコーディング規約なんて邪魔以外のなにものでもない
・ スクリプト言語なので元の用途は自前のツールをお手軽に作る事だった
  → 自分専用の道具を作るのにJIS規格とかを気にするヤツはいないのと同じでコーディング規約なんてキニシナイ
・ スクリプト言語はコンパイラ言語と違って大規模開発に向いてないと信じられていた
  → 小規模ならコーディング規約なんていらない。
って感じだな。

プロセッサも高性能化し、スクリプト言語でも十分に大規模開発が可能になったが、
・ 未だにキーストロークを減らす派の存在が大きい
・ CPANなど充実したライブラリの存在で実際にコーディングする量はそれほど増えてない
って理由から、わざわざコーディング規約を決めようとする動きも存在しないわけ。

使いたいものが、この世に存在しないなら自分で作ればいい。
もし、藻前さんがPerlのコーディング規約が欲しくて作るというなら、
目を通して意見を言うぐらいの手伝いはこのスレの人もやってくれると思う。

まあ、使う人がそんなにいるとは思えないが。

637:629
07/12/30 19:23:31
>>636
詳細な説明のレスありがとうございます。
自分でもPerlについて調べていたのですが、似たようなことが書いて
ありました。自由度の高さが売りなので、逆に規約が無いということ
ですね。納得しました。(TMTOWTDIと呼ぶみたいですね。)
スクリプト言語関連の部分は調べた範囲ではなかったので、非常に
参考になりました。歴史的な経緯もあるのですね。
私は今までVBなどをやっていたので、Perlの規約が無いのには違和感を
感じますが、自分がなれている独自の規約で書いていこうと思います。

こうなると、コーディング規約よりも「こういう場合はこういう
コードを書くと便利だ」といった、Tips系のものを集めた方が
よさそうな気もしました。

例:POSTで受け取ったデータは、foreachを用いてハッシュに入れると良い。
この方法のメリットは~~。デメリットは~~。

詳しく考えがまとまったらまた相談します。ありがとうございました。

638:nobodyさん
07/12/30 20:27:22
>>637
use CGI;
my $q = new CGI;
print $q -> param( 'hoge' );
これよりも簡単に書けるなら使ってやる。

639:629
07/12/30 20:56:34
cgi.pmというのがあったんだ。知らなかった。
今まで読んでたサンプルソースにはそんなのが
なかったので知らずに全部コード自作してたよ。orz

640:nobodyさん
07/12/31 10:57:08
CGIの実行を制限する方法についての質問です。
例えば、2ちゃんねるは、別のサイトやローカルPCに保存したhtmlファイル
から「書き込む」をしてもエラーが出て受付けない仕様となっていますが、
こういった不正な入力を防ぐには、具体的にどういったコードを書いたら
よいのでしょうか。環境変数あたりで判断して行うのでしょうか。

641:nobodyさん
07/12/31 15:09:23
一番簡単な方法は環境変数だわな
if ($ENV{'HTTP_REFERER'} !~ m!^\Qhttp://俺のサーバ/cgiのパス\E!) {
  # 外部から書くな氏ねハゲ池沼ボダ抱いて
}
みたいなかんじで

642:nobodyさん
07/12/31 15:48:47
先ほどスレ違いをしてしまったので
.cgi .plのスクリプトを使いたいのですが
どうすれば実行されるのですか?
クリックしても.exe .batみたいに動かないし…

やり方を教わったのですが 意味がわからないし…
教えてください お願いします

643:nobodyさん
07/12/31 15:51:39
>>642って何?いろんなところにコピペしてるのかな?
スレリンク(php板:443番)

644:640
07/12/31 19:09:34
>>641
レスありがとうございます。
書き込みをみて、$ENV{'HTTP_REFERER'}をキーワードで
検索をしてみたのですが、書き方は何種類かパターンが
あるのが分かりました。

$site = "http://俺のサーバ/cgiのパス";
if($ENV{'HTTP_REFERER'} !~ /$site/i)
if($ENV{'HTTP_REFERER'} !~ /^$site/)

この書き方においては、これが一番いいなという結論のような
ものはないのでしょうか。
改行コードの変換の仕方の解説で、こういったサイトを
読んだことがあるので、ちょっと不安になって聞いてみました。
URLリンク(www.din.or.jp)

645:638
08/01/02 18:35:41
>>639
まぁ、おいらも最初は自作してたんだし。
それに、自作したからこそ理解できた部分もあるだろう?

心配するな。みんな同じ道を歩んできた。

>>640
参照元は偽装できるから、セッション利用するのがいいかもね。

646:640
08/01/04 00:25:33
>>645
ヒントありがとうございます。調べてみます。

647:nobodyさん
08/01/04 14:22:05
確認ですが、CGI.pm のモジュールでは、FORMタグを書いた際に
改行されないようにするのが出来ないですよね?

具体的には、↓これをFORMタグ内に記述したりするものです。
style="float:right"

改行されるのが嫌ならば、FORMタグをTABLEタグの外で記述すれば
いい話ではありますが、デザインの都合上でそれが出来ないケースの話です。

648:nobodyさん
08/01/04 15:55:01
>>647
馬鹿じゃないの?

649:nobodyさん
08/01/04 15:56:37
かなり初級的な質問ですが、お願い致します。
Perlの場合は、配列と数値を引数で渡すことは出来ないのでしょうか。
例えば、以下のような感じで、@a を @n1 へ、そして、$i を $n2 で
受け取りたいのですが、$n2 値が表示されないのです。

sub FuncA(){
my( @n1, $n2 ) = @_;
print "@n1[0]\n";
print "@n1[1]\n";
print "@n1[2]\n";
print "$n2";
}

@a = ( "aaa", "bbb", "ccc");
$i = 3;
&FuncA( @a, 3 );

650:nobodyさん
08/01/04 16:19:57
リファレンス

651:649
08/01/04 16:42:27
>>650
レスありがとうございます。
以下のように書き直してみたら、ちゃんと3が表示されましたが、
こういう渡し方をするしかないという意味合いですよね?

sub FuncA(){
my( $n1, $n2 ) = @_;
print "$n1->[0]\n";
print "$n1->[1]\n";
print "$n1->[2]\n";
print "$n2";
}

@a = ( "aaa", "bbb", "ccc");
$i = 3;
&FuncA(\@a,3);

652:nobodyさん
08/01/04 17:41:36
他にもやりようあるけど
それがいちばん簡単じゃない?

653:649
08/01/04 20:24:38
>>652
他のやりようとはどんなものなのでしょうか?
キーワードのヒントでもいいのでお願いいたします。m(_ _)m

654:nobodyさん
08/01/04 20:38:02
すみません質問です。
「Perlは時代遅れだ。」という書き込みを読んでちょっと不安になったのですが、
Perlは本当に時代遅れなのでしょうか?

レンタルサーバのサービスでは、低価格でもPerlは確実にサポートしているので、
システムを組む時や、別のサーバにシステムを移項するのには非常に
やりやすいものであります。
COBOLがすたれたのは、Excelが出たからというのが一つの要因ですが、
私には、PerlにとってのExcelにあたるものが見当たりません。

なので、PerlはWebプログラミングとしては、まだまだ十分に
活用できる言語だと思っています。
もし、本当にPerlが時代遅れだとすると、PHPやJavaが特有で持っている機能が
必須となるわけですが、それらは具体的にどういう機能なのでしょうか。
よろしくお願い致します。

655:nobodyさん
08/01/04 22:34:46 zn9OWNdo
>>653
>>652じゃないけど
プロトタイプでできるよ
sub hoge ($@) {
 my $foo = shift;
 my @bar = @_;
}
hoge($foo,@bar);

たぶんこんな感じだと思う

普通に配列を後で渡せば受け取れるけどね。
$_[0]をshiftしちゃえば同じ事だと理解できればぉk

656:nobodyさん
08/01/04 22:39:39 zn9OWNdo
>>654
PHPに出来てPerlに出来ない事は無い。
たとえばPHPならDBとの連係が良いとか。
でも、web専門だったり。
javaは規模や対象から違う。

要は目指す所の違いだと思う。

Perlが汚いと思うならRubyやPythonをやれば良い

657:nobodyさん
08/01/05 01:11:38
アンチPerlの人は、時代遅れとか言って叩く。

658:654
08/01/05 02:15:25
>>656
>>657
ご回答ありがとうございます。
目指すところの違いがあるんですね。
アンチは具体例を出さずにすぐに一般化して
否定しますしね。
安心しました。ありがとうございます。

659:649
08/01/05 14:25:20
>>655
レスありがとうございます。プロトタイプ使えばよさそうですね。
こちらでいくらかプログラムを書いてみたのですが、配列は
必ずあとじゃないとダメみたいですね。
FuncA($@) これだと動くのですが、 FuncA(@$) これだとダメでした。

660:nobodyさん
08/01/05 18:18:51
質問です。
ナビゲーションバーが<li>タグで
フォームがテーブルタグで囲む形で
出力されるテンプレートエンジン。

これは今風ではないでしょうか?
出力されたHtmlを読むと可読性が良さそうなので
これで行こうと思っています。用途はテンプレート
エンジンの勉強がてら簡易wikiでも自作してみよう
と思ってます。どうぞよろしくお願い致しますm(__)m

661:nobodyさん
08/01/06 01:12:32 4ZDHflzT
ActivePerlにcpan Perl::Tidyしました
cygwinからActivePerlを使っているのですが、
$ perltidy
としてもcommand not found になります。
どうしたわけでしょう。
cygwin用のperltidyもあるときき、Cygwinからもcpan Perl::Tidyで入れてみましたが、
依然として
$ perltidy
command not found
です。アドバイスください。ヒントでもいいのでお願いします。

662:nobodyさん
08/01/06 05:36:20
昔俺もやった。確か bin にパスが
通ってないだけだったと思うけど。

663:nobodyさん
08/01/06 11:16:43
>>660
htmlタグの書き方について質問をしたいのであれば、
WebProg板ではなく、Web製作板の方へどうぞ

664:nobodyさん
08/01/06 13:57:41 4ZDHflzT
>>662
うまくいきました。ありがとうございます。

665:nobodyさん
08/01/06 15:48:56 srAiPMxF
関数に配列を渡そうとしているのですがうまくいきません。

呼び出し側
p_html_kotaivew_kekkawrite
($name, @status, $ks, @han1, @han2, @sta1, @sta2);
関数側
sub p_html_kotaivew_kekkawrite{
local($name, @status, $ks, @han1, @han2, @sta1, @sta2) = @_;
~~以下略

このような感じにやると、渡した$name以降の配列がすべて@statusに格納されてしまいます。
アドバイスお願いします

666:nobodyさん
08/01/06 16:21:21
リファレンス渡しにしろ

667:nobodyさん
08/01/06 16:47:29 XbpFSz7R
>>666
リファレンス渡しをしてみましたが、やはり@statusに以降の配列がすべて格納されてしまいます。


668:nobodyさん
08/01/06 17:03:52
>>667
p_html_kotaivew_kekkawrite
($name, \@status, $ks, \@han1, \@han2, \@sta1, \@sta2);

sub p_html_kotaivew_kekkawrite{
 local $name = @_[0];
 local @status = @{$_[1]};
 local $ks = @_[2];
 local @han1 = @{$_[3]};
 local @han2 = @{$_[4]};
}
 local @sta1 = @{$_[5]};
 local @sta2 = @{$_[6]};
}

669:nobodyさん
08/01/06 17:04:32
>>668
ブレスミスすまそ

670:nobodyさん
08/01/06 17:26:06
>>669
なるほどそのように記述すればよろしいのですね。
本当にありがとうございました

671:nobodyさん
08/01/06 19:10:38
>>668ですでに回答は書いてあるけれど。。。
他の言語を先にやったものだと違和感を感じるものだが、perlの場合は、
関数は、スカラを先に書いて、配列を後に書いた方がいいというルールが
あるようだ。

672:nobodyさん
08/01/06 19:20:03
ま、スライスを理解すればそれが普通に・・

673:nobodyさん
08/01/06 19:21:39
すみません。質問です。
Perlで検索結果一覧を出すまでや、ファイルへ書き込みをした場合に
要した時間を計り、表示させたいのですが、どのような関数を
使用したらよろしいのでしょうか。

674:nobodyさん
08/01/06 19:50:13
>>673
my $t = time;
~ #計測したい処理
my $t2 = time;
my $sec = $2 - $1;
print "$sec秒だったです";

675:nobodyさん
08/01/06 19:51:41
訂正
× my $sec = $2 -$1;
○ my $sec = $t2 - $t1;

676:nobodyさん
08/01/06 19:58:47
>>674->>675
すばやい回答ありがとうございました。

677:nobodyさん
08/01/06 20:17:39
開こうとしているサイトのURLを入力し、危険なhtmlコードが
含まれているかをチェックするcgiサイトがありますが、
あれはどういう原理で動いているのでしょうか。
自分のサーバとは別の、他のサイトのhtmlファイルを読み込むという事は、
perlのopenでは出来ませんよね?

678:nobodyさん
08/01/06 20:38:06
Socket使うかLWPモジュール使うか

679:nobodyさん
08/01/06 22:14:19
初歩的な質問ですが、サイトを読んでいてもいまいち分からなかったので
こちらで質問させていただきます。

配列の1つの要素への処理の記述方法についてです。
以下のコードを記述しておいて、それに続くものです。
@a = ( "a1", "a2" , "a3" );

記述1:$a[1] = "b2";
記述2:@a[1] = "b2";

どちらの記述でも、思うように動作しているので、問題なさそうなのですが、
処理速度や、内部的な動きなどからいってこっちの記述が良いというものや、
多くの人のコーディングはこちらが多いから、などというものはあるの
でしょうか。

680:nobodyさん
08/01/06 22:15:19
おま・・・

681:nobodyさん
08/01/06 22:30:21
cgiをブラウザで開いてテストしたいのですが、
ブラウザで開こうとするとエディタが開いてしまいます。
どうすればいいですか?

682:nobodyさん
08/01/06 23:05:56
>>678
ありがとうございます。
さっそくぐぐって見ます。

683:nobodyさん
08/01/06 23:12:15
>>681
必要な環境整えてる?
Windowsならば、ActivePerlとApacheをいれて設定するとか、
設定したフォルダにcgiファイルをおいてるかとか。

684:nobodyさん
08/01/06 23:28:59
>>683
ApacheもActivePerlも入ってます。
ブラウザで開こうとするとエディタに実行結果が返ってきてるので
フォルダ等も大丈夫だと思います。

685:nobodyさん
08/01/06 23:31:53
エディタに実行結果返ってきてるからってフォルダが正しいとは限らない気が・・

686:nobodyさん
08/01/06 23:37:38
取り合えずやったことを書き出してみます。
#! c:/perl/bin/perl

print "Content-type: text/plain\n\n";
print "Hello Perl !";
を1-1cgiとしてhtdocs/rensyuに保存してブラウザでURLリンク(127.0.0.1)を使って実行すると
ファイルをダウンロードしてエディタが開いて実行結果が返ってきてるんですよね

687:nobodyさん
08/01/06 23:39:11
cgi-binに入れようよ・・・・

688:nobodyさん
08/01/06 23:43:00
>>686
httpd.conf の設定は確認してる?
参考にとほほのサイト紹介しておきます。
URLリンク(www.tohoho-web.com)

689:nobodyさん
08/01/06 23:49:36
text/plainだからじゃないの

690:nobodyさん
08/01/07 00:02:41
>>687
参考にしてる本がhtdocsだったんですよね
>>688
設定確認しましたが、大丈夫だと思います。

ちょっと試してみたんですが、
#! c:/perl/bin/perl

# CGIヘッダーの出力
print "Content-type: text/html\n\n";

# HTMLの出力
print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\">\n";
print "<html>\n\n";
print "<head><title>Hello HTML</title></head>\n";
print "<body><p>こんにちは。これはHTML文書の例です。</p></body>\n";
print "</html>";
だとブラウザに出力されました
もうわけが分かりません

>>689
ソースはテキストどおりなんですよね

691:nobodyさん
08/01/07 00:23:35
何がわけわからんのだろう
ブラウザの設定でtext/plainはエディタで開くようになってるんでしょ

692:nobodyさん
08/01/07 00:41:55
自分もさっきApache入れたら同じ症状になって困ったが
explorerの関連付けはずしたら正常になった

693:nobodyさん
08/01/07 00:56:15
>>691
ブラウザの設定なんですかね?
ブラウザに関連付けしてみたらブラクラみたいになったんですが、
どういう設定をいじればいいんですか?

>>692
.cgiへの関連付けを削除してみたら
ブラウザから開こうとしたら
このファイルを保存しますか、または開くためのプログラムをオンラインで検索しますか?と
でてきました。
よければ現状、何に関連付けされてるか教えてもらえないですか?

694:nobodyさん
08/01/07 01:06:33
>>690
どうしてもhtdocs内で実行させたいなら
<Directory ******/htdocs>
Options ExecCGI
</Directory>

みたいにExecCGI追加して
AddHandler cgi-script .cgi

みたいに設定ファイル(httpd.conf)を書き換えて再起動して味噌

695:nobodyさん
08/01/07 01:14:15
>>693
まったく関連付けなし。

ってか>>688のサイトにあった、>>694の設定をしたら
関連付けしても普通に動くようになったぞ

696:nobodyさん
08/01/07 01:17:32
>>693
関連付けはいじらずにtext/htmlで書き出せばどうだい

あと関連付けするのはcgiじゃなくてtxtだと思う

697:nobodyさん
08/01/07 01:39:40
<Directory "C:/ApacheGroup/Apache2/htdocs">
Options +ExecCGI
AddHandler cgi-script .cgi
</Directory>
を付け加えてもダメでした・・・
エディタは開かなくなったんですが、一瞬プロンプトの画面が見えたと思ったら消えて、
ブラウザにはWeb ページへのナビゲーションは取り消されましたってでてしまいます
>>696
htmlで書き出すとブラウザにでるんですけど、テキストがplaneで出力できてるんで自分の設定がなにかおかしいところがあると思うんですよ
だからそれを解決しとかないと・・・と思うんですよ。

698:nobodyさん
08/01/07 09:36:39
>>697
もう一度よ~~~く見るんだ。

”Content-type: text/plane” じゃあ、
そりゃ「そんな mimetype わしゃ知りません」ってIEがおっしゃるよ。

699:nobodyさん
08/01/07 09:53:12
初心者はapacheじゃなくてanhttpd使った方がいいぞ。
たぶんapacheの設定で失敗してるはず。

700:nobodyさん
08/01/08 17:54:44
【質問】
レンタルサーバでCGIでプログラムを動かしているのですが、
処理を行う際のサーバの負荷が気になるので、>>674-675に
書いてある方法を使用し、常に処理にかかった時間を
表示するようにしています。
ある関数を動かした際、普段の処理時間は1~2秒なのですが、
ネットが異常に遅い時に同じ処理をした時、10秒ほどかかりました。
この処理にはhtml出力が入っているのですが、CGIのhtml出力は、
CGIで処理した結果すべてをまとめてクライアントPCのブラウザへ
流しているものだと思っていましたが、仕組み的にはそうではない
ということなのでしょうか。
それとも、私の使用している計測方法が誤っているのでしょうか。

何かこういうのを調べてみろ、みたいなヒントでも良いので
よろしくお願いします。

701:nobodyさん
08/01/08 19:20:06 b1r9jep2
perl -Mでシンボルをインポートするにはどうしたらいいですか。
perldocしましたが見つかりませんでした。

702:nobodyさん
08/01/08 19:21:24
>>700
検索→[Perl フラッシュ]

703:nobodyさん
08/01/08 20:25:03
>>700
times関数ってのがあるよ

704:700
08/01/09 00:13:41
>>702
>>703
ありがとうございます。
早速調べてみます。

705:701
08/01/09 06:38:37 g0MHwkoX
>>701お願いいたします。

706:nobodyさん
08/01/09 07:18:12
>>700
時間計測をやめて少しでも処理を減らすが吉

707:nobodyさん
08/01/09 23:13:03
現在、データを複数のテキストファイルに書き込む処理を
するかたちでプログラムを組んでいます。
この複数のファイルは、丁度テーブルに見立てた設計に
しており、主キーで連携を取っています。
しかし、データがテキストファイルであるため、データの
取り扱いに不便を感じる場合もあります。
ソートをする際、すべてのデータを変数に読み込んだり
出来ない場合は、ソートをしながら別のファイルに
書き込むといった感じです。

こういう、データを記録するのに丁度良いモジュールという
ものはないのでしょうか??
ま、データベースを使えばという話になるのでしょうが、
レンタルサーバなどの環境でそこまで準備が出来ない場合の話です。

708:nobodyさん
08/01/09 23:25:07
>>707
無料レンサバでもDB使えるとこ結構ある。


709:nobodyさん
08/01/10 02:06:12
# フォームデータの取得
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);

コレを入れるとエラーがでてしまうんですが、どこが悪いんですかね?

710:nobodyさん
08/01/10 02:09:13 YdP4IGcZ
閉じ中カッコがない

711:nobodyさん
08/01/10 19:24:04 Ea25ozf2
引数を作るにはどうしたらいいんですか?

index.cgi?----
みたいな感じのです。


712:nobodyさん
08/01/10 19:44:52
>>707
つ DBD::CSV

713:nobodyさん
08/01/10 19:46:08
>>711
つ[ URLリンク(www.futomi.com) ]

714:nobodyさん
08/01/10 21:21:19 YdP4IGcZ
5.10にしないと入れられないモジュールを入れるにはどうしたらいいですか
5.8.8からcpanコマンドで入らないです

715:nobodyさん
08/01/11 02:44:48
>>712
make
make install

716:nobodyさん
08/01/11 18:21:27 PVnoyiBC
C++,JAVAを児戯並みに使えるパーラー見習いですが、
最近パールの良さがわかってきました
さてWindows上のGUIアプリケーションを作るのには向いてますか?
モジュールはちらほら見かけましたし実際作ってみましたが、やり方が悪いのかうまくいきません
どうも腑に落ちません
実際作ってみてどうですか?

717:nobodyさん
08/01/11 21:00:50
Tkはモジュールの近い方覚えれば何でも作れるけど、ローカルサーバー立ててCGIで済ましちゃうことが多い。
Win32はシラネ

718:nobodyさん
08/01/11 22:16:12
>>716
WindowsのGUIアプリならば、VBなどがあるのにあえてPerlを
選ぶ理由は何?
企業が使う業務システムではVBが圧倒的に多い理由を考えると、
と思うけれど。

719:nobodyさん
08/01/12 03:37:57
>>716
Perlのよさがわかってないと思います

720:nobodyさん
08/01/12 03:49:51
Rubyまじお勧め

721:nobodyさん
08/01/12 14:37:13
Rubyは1.8でオワタ

722:nobodyさん
08/01/12 16:29:39
Perlではソースコードの圧縮(空白やコメント除去)があまり行われないのはなぜですか?

723:nobodyさん
08/01/12 17:15:04
スレリンク(php板)l50

ここでソースコードの圧縮やってるよ

724:nobodyさん
08/01/12 20:57:02
ティムトゥディだからさ

725:nobodyさん
08/01/13 01:39:09 EtYE9LoZ
CPANモジュール名のリストがあるときに、それらを自動でインストールするには
どうしたらいいですか?

726:nobodyさん
08/01/13 08:37:57
Windowsならバッチファイルにする
Linuxはしらね

727:nobodyさん
08/01/13 12:51:10
パール六は全然違うとしきりに言う同僚がいて不安感が煽られています
当方パール入門したでして…覚えたばかりの知識が海のもずくになると思うと…

しかし実際のところあと3年はPerl5の知識が使えるんですかね?
そのPerl6とやらがいつ出るかも知らないので(公式サイトを検索しまくっても見つからなかった
私はバカですか?)何とも言えない状況です

あと移行はいきなりなんでしょうか、5.12を過ぎて6になった途端に様変わりしちゃったらすごく困ります^-^;

728:nobodyさん
08/01/13 13:46:17
デフォでuse strictとか、正規表現の記述が変わるとか、ソレぐらいしかしらね。

729:nobodyさん
08/01/13 14:45:25
変更点を把握すれば何も問題ないだろ

730:nobodyさん
08/01/13 16:08:40
Rubyの仕様変更に比べればどうってことない

731:nobodyさん
08/01/13 17:03:12
>>727
ま、こういうのはどの言語でもふつうにあることなんじゃないかな。
そういうのについてこれないのは、技術者として終わりみたいな。
今でも N88BASIC とか COBOL とかで組んでる人っていないだろ?

> しかし実際のところあと3年はPerl5の知識が使えるんですかね?
> あと移行はいきなりなんでしょうか
これは、ケースバイケースなのではっきりとはいえない。
例えば、過去の資産を活かしたシステムを構築する場合は、Perl5で
構築するだろうし。
あと、安定性も考えて、いきなり新しくはしないケースもある。
システムは、早く作れることも大事だけど、安定して動くことが
大事なのだから。

個人的に思うのだけど、大幅な仕様変更をするのに、いつまでも
前の名前を使い続けるから紛らわしくなるんじゃないかなと思う。
Perl は 5 で完成形であり、それで終わり。役割は果たした。
そして、新しい言語が出る。とした方が分かりやすいと思うのだが。

732:nobodyさん
08/01/13 17:13:18
安定性を無視して、やたらと新機能を追加させることに
固執している言語があるが、あれよりマシだと思う。

大幅に仕様変更していて、ユーザがついてこなかったから、
やっぱり戻したとか。
仕様変更をしすぎて、別の言語と非常に似ていて
その存在自体が意味無いものに見えるとか。

733:nobodyさん
08/01/13 20:48:32
>>732
PHPのことか。
zendはphp4のサポートを終わらせて無理やり5に移行させたがっているが、4の開発メンバーは今は6を作ってるらしいからそれ待ちだ。

734:nobodyさん
08/01/14 03:03:11
なんでPHPやねんw

735:nobodyさん
08/01/14 03:20:58 h4dQ9PIo
日本のPHPの人気ぶりは異常
海外サイトではPHPなんて全く持ち上げられてない
んで、何がいいたかったかというとPerl最高

736:nobodyさん
08/01/14 09:05:00
ということにしたいんですね

737:nobodyさん
08/01/14 09:50:52
日本のウォシュレットの人気ぶりは異常
海外サイトではウォシュレットなんて全く持ち上げられてない
んで、何がいいたかったかというと温熱最高

738:nobodyさん
08/01/14 12:36:17
PHPのプロジェクトに放り込まれて、担当モジュール作ったけど、他のモジュールが遅れてたので、暇つぶしにPerlで全部作ったら怒られた。
Rubyのほうが良かったですか?って聞いたら余計に怒られた。
なんで?

739:nobodyさん
08/01/14 13:25:17
KY社員は死ね

740:nobodyさん
08/01/14 14:50:02
レンタルサーバにて、Perlを使ってPostgreSQLに接続し、
その内容をhtml出力するところまでやっと出来たくらいの知識の者です。

そこで、普段のバックアップはどういう仕組みでやるとよいのか
迷いましたので、こちらで質問してみました。
私としては、Perlで、データベースのテーブルとテキストファイルと
をコンバートするプログラムを自作し、定期的に手動(FTPソフトを
使うなどして)でローカルにファイルを保存しておく方法くらいしか
思いつきませんでした。しかし、それだと普段の作業に非常に
手間がかかってしまいます。

一般的に、レンタルサーバでPerl+PostgeSQLのWebシステムの
バックアップは、このような方法を取ることが多い、みたいなものは
あるのでしょうか。よろしくお願いします。

741:nobodyさん
08/01/14 18:56:43
SSHでpg_dump

742:nobodyさん
08/01/14 19:46:06
>>741
Postgresqlの定番のバックアップの方法ですよね。
それしかないのでしょうかね。

743:nobodyさん
08/01/16 10:57:33 Z4nycbhz
パールでWebプログラミングしようかと思っております。
が、セキュリティーが不安です。
レンサバでやるにせよ、セキュリティーに穴があって攻撃されると
いろんなトラブルがあるんでしょ?
当方、素人の趣味でやってるプログラミング歴まだ1年のプログラマーなもので
そのあたりを実際に企業で開発した経験が当然なく不安です。
セキュリティーやネットワークに関する勉強をやるのに手始めとしてオススメのメソッドありますか?
あまりパールと関係なくてごめんなさい。

パールの本でセキュリティーやネットワーク関係のものって無いですよね。
LWP本はありましたが、
もっと広範にネットワーク関係のスキルを強化したいです。パケット解析とか。

まあ、それはそうと他のWeb系を始めようとするパーラーはそういうセキュリティーやネットワーク関係の不安ないんでしょうか?
皆さん気軽に始めていらっしゃる方が多くよほど知識がおありなのだなあと斜にかまえて静観しています。

744:nobodyさん
08/01/16 17:37:17
どこを縦読み?

745:nobodyさん
08/01/16 17:58:11
>>743
Perlからはなれて、パケットフィルタリングとか、TCP/IPの
詳細について調べていった方がいいと思う。
セキュリティも個人情報を扱っているとか外に洩れるとやばいものは
物理的なレベルで外部に公開せずに社内LANでのみとかにするわけで、
そういうものはPerlの設定やコーディングでなんとかするものではない。

746:nobodyさん
08/01/16 18:07:35
>>743
最近は、ASP(アプリケーションサービスプロバイダ)とかあるので、
それを利用した方がいいと思う。プログラムを組むのは辞めて。
それだと、必要な機能だけを月に数千円~数万円で必要な期間だけ
利用できる。

747:nobodyさん
08/01/16 20:49:06
ごめん、拡張子aspだけど、中身Perlwwwwww

748:nobodyさん
08/01/16 22:39:49
>>747 あるあるwww

749:nobodyさん
08/01/18 20:13:52
すみません。質問です。
不正な入力を防ぐ為に、いろいろなことを考えているのですが、
一人で考えていると、漏れがありそうな気がして怖くなりました。
何か、こう言うことを考えてコーディングしたほうがいいという
ガイドラインのようなものはあるのでしょうか。

例えば、以下のような感じです。
1.変なアドレスからcgiを実行しようとしていたらはじく
2.textareaタグの記述は○文字まで
3.同一IPアドレスからの連投を防ぐ

750:nobodyさん
08/01/18 22:45:45
パイプで別プロセスを作った場合ですが、
特殊サブルーチンENDはそれぞれが終了した場合に常に行われる。
これを防ぐ手立てはないでですか?

751:nobodyさん
08/01/19 10:32:13
>>750です。自己解決しま。

752:nobodyさん
08/01/19 16:56:00 FZ1FRzKn
Perl使用者がよく使うライブラリ、モジュールなどを紹介した
投票形式のサイトを以前見かけたのですが、思い出せません。

どなたかご存じないでしょうか?


753:752
08/01/19 17:21:59
見つかりました

URLリンク(mfpm.blogdb.jp)

お騒がせしました

754:nobodyさん
08/01/23 16:33:04 LaH3xf3C
こんにちは。

755:helpです
08/01/23 17:26:00 AM6Aqa52
すいません。下記のようにwhile→foreach→whileと入れ子構造で
繰り返し単語リストにある用語を文書から検索したいのですが、
上手く動きません。Helpお願いします。
$word がwhile (<F>) 以下の$wordに上手く渡せません。

open(F4, $dic_file) || die "$dic_fileをオープンできません:$!\n";

while (<F4>){
@words = split(/\n/, $_);
foreach $word (@words){

while (<F>) {

print "$_";
#「$word」という単語のみにマッチさせる


756:nobodyさん
08/01/23 18:55:07
while (<F4>){
@words = split(/\n/, $_);

wwwwwwwwwwwwwwwwwwwwwwwwwwww

757:nobodyさん
08/01/23 19:27:30
$/ = '';


758:755
08/01/23 22:55:33
つまり
1.用語ファイル (単語が1行に一つずつ入ってる用語。500個位)
2.文書ファイル (文書ファイル。単純なテキスト)
3.2の文書ファイルを、1の用語ファイルの単語を一つずつ
whileを使って検索します。

早めに必要なのでどなたか教えてください。>756さん笑ってないで。

759:nobodyさん
08/01/24 00:24:58
>>755
Perlでは(というか…)改行文字でレコードが分割されているので
@words = split(/\n/, $_); # <-はありえない
そもそも、こんなループを組むこと自体どうかとも思うが

my @words = [];
while (my $word = <F4>) {
  push @words, $word; # $_でもいいけど
}


ファイルをループ先頭でseekするのもありかな、あとはお好きにドゾー。

760:nobodyさん
08/01/24 07:38:32
>>755
>>759に書いてあるように改行文字で分割される、
事前に>>757を書いておくと、以降$/に代入された文字で分割されるようになる。
ここでは空文字列なので分割しなくなる。

my $txt
{
 local $/;
 open(F,$txt_file) or die "$txt_fileをオープンできません。";
 $txt = <F>;
}
open(F4,$dic_file) || die "$dic_fileをオープンできません。";
foreach $word (<F4>) {
 $word =~ s/\n$/s;
 $txt =~ s/\Q$word\E//sg #例: マッチ部分削除
}

|´д`)ノ笑ってすまんね

761:755
08/01/24 09:47:56 TN487IBF
好きよ、好きよ、好きよ >760さん。

762:nobodyさん
08/01/24 10:15:27
検索するといっても、どういう結果が欲しいわけ?
ファイル2の行数までほしいとか、ファイル1のwordのリストだけでいいとか、
件数までいるとか。

763:nobodyさん
08/01/24 23:47:07
すいません。Perlからword, excelファイルをいじることってできます?
マクロの言語(VB?)分からないので・・・。

764:nobodyさん
08/01/25 03:03:45
Win32::OLE

765:nobodyさん
08/01/25 08:09:41
>>763
Perlそのものがその程度の知識であれば、VBAを勉強した方が早いと思う。
一つバージョンが違っただけで途中で動かなくなるとかしょっちゅうだし。

766:nobodyさん
08/01/25 15:27:50
VBAでわからないなら Perlでも無理だと思う。


767:nobodyさん
08/01/25 18:34:06
VBとVBAの違いが分かっていない時点で、
プログラムそのものをあきらめた方がいいと思ったりw

768:nobodyさん
08/01/26 00:07:47
VBAだけでもVB組めるんだが・・・釣られた?

769:nobodyさん
08/01/26 18:10:44
cgiファイルにアクセスして来た内容(GETやPOSTのデータなど)を
ログに保存する場合、すべて独自でプログラミングするしかないのでしょうか。
自分で作りはしたのですが、こういう状況は頻繁にあるので、
モジュールがあるのでは、と思ったりしたのですが。

770:nobodyさん
08/01/26 18:32:06
なぜ、そう思うならドキュメントを読もうと思わないのだろうか?
URLリンク(search.cpan.org)

771:nobodyさん
08/01/27 01:37:41
>>770
レスありがとうございます。
ドキュメント読んでやってみます。m(_ _)m

772:nobodyさん
08/01/27 12:37:53 TNan8zlF
日本でperlの良いサイトが見当たりません。
perlの英語サイトでお勧めありますか?

773:nobodyさん
08/01/27 13:13:35
きみの言う”良いサイト”を説明しないことには・・

774:nobodyさん
08/01/27 13:32:38
perlはネット上では情報量は多い方だぞ。

一方で某社の言語のは情報量は少なく、高い公式文書とかを
買うしかなかったりするし、簡潔すぎて分かりにくい説明を
一生懸命読む羽目にもなる。

775:nobodyさん
08/01/27 19:07:45 TNan8zlF
>>773
良いサイトを教えて欲しいのではなくて良いサイトが日本ではないと思うので
海外のお勧めサイトを教えて欲しいんです。
切実な要求ではなくて、ハックな皆さんが常日頃どんな英語サイトを見ているかを気軽に尋ねたつもりなんですが。

776:nobodyさん
08/01/27 19:26:24 TNan8zlF
>>774
分かる気がします。
定番ですがperl mongerは良く見ますが、かなり突っ込んだトピックでも有益な情報がたくさん引っかかることがあったりしますね。
例えば、insideout objectはこのサイトで勉強しました。
あとGoogleの最近更新されたページ検索とはてブとCPANサーチを使えば目的のページが見つかることが多いですね。
皆さんはどうやってperl情報を検索してますか?
お勧めあったら教えてください。

で、上で質問したのは、RSSで読みたくなったりブラウザーのお気に入りに入れておきたくなるような良いサイトが
なかなか日本のperl関係では少ないかなということです。
まあそのあたり実際どう思います?
個人の主観なので、まあそのあたりは適当にスルーしてくださっても結構です。

777:nobodyさん
08/01/28 00:30:45
おれは
URLリンク(perlbuzz.com)
URLリンク(search.cpan.org)
use.perl
とか色々。

778:nobodyさん
08/01/28 00:32:33
あ、authorぢゃなくて
URLリンク(search.cpan.org)
こっち。

779:nobodyさん
08/01/28 00:36:50
うーん、なんか半端だな・・・
URLリンク(www.perlcast.com)
URLリンク(perlmonks.org)
URLリンク(perlperl.com)
URLリンク(cpancode.org)
URLリンク(cpants.perl.org)


780:nobodyさん
08/01/28 20:41:09 iAknG7Tj
>>777
ありがとうございます。
知らないサイトがあって参考になりました!!!!
早速livedoorリーダーにRSSフィードぶち込みますねw

サーチCPANのRecentというのは着目してませんでしたが良さげですね―
やはり最近のものをチェックしないと古くなってることが多いからですか

こうやって見てみると海外では良いperlサイトがどっさりありますね。


781:755
08/01/30 18:16:21
URLリンク(www.voynich.com)のコードなのですが、
これだと1ワード検索して終わりです。できれば以前教えていただいた
while (my $word = <F4>) {
  push @words, $word; # $_でもいいけど
}
で、foreach $word(@words){
}の中でリストの単語を全て動かしたいのですが、どうも上手くいきません。exit(0)のせい?
どこからどこまでをforeach $word(@words){}のカッコでくくればいいのでしょうか?
または、別の解決方法でもいいので、教えてください。
よろしゅう。


782:nobodyさん
08/01/30 22:34:27
mapとgrep、そして多次元配列を覚えると良いよ。

783:755
08/01/30 23:13:31
>781
覚えるの1週間、教えてもらえば5分。
これでもいろいろ他にやることあるのよ。
意地悪しないで教えてちょ。

784:nobodyさん
08/01/30 23:26:43
用件仕様が見えてこない。
何か例があればいいのだが。

785:755
08/01/30 23:27:11
もったいぶらずにさっさと教えろ。ヲタク野郎。

786:755
08/01/30 23:29:57
>785
騙るな。俺はそんな乱暴な人ではない。

787:nobodyさん
08/01/30 23:33:38
いや、だからさ、読み込むファイルのサンプルと、
欲しい結果のサンプル、そして、今のプログラムで出力される
結果のファイルとか、具体的に示してくれないと何処に問題が
あるのかが分からんのよ。
そういうところはソースコードを全部読んでも見えてこないでしょ?

ま、サンプルが出たとしても対応は明日以降になるけれど。

788:755
08/01/30 23:41:30
>787
787さんは782さんですよね?
そのmapやgrep、多次元配列とやらで781の回答をきぼん。

789:nobodyさん
08/01/31 07:18:48
で、サンプルは?w

790:nobodyさん
08/01/31 08:20:23
ちょっと最初の方だけ読んでの疑問なんだけど
ファイルと検索文字を読み込んだ後の
chop ($open_file, $save_file, $word);
って何をやろうとしているの?

791:755
08/01/31 09:14:13
>790
それはSTDINの改行を取るためですね。

>789
入力する文章は日本語と英語が混じったものです。
検索する単語も適当にでっちあげて下さいよ。

792:755
08/01/31 09:26:00
別件なのですが、マッチした単語を@match_wordsに一度格納しているのですが、
いつの間にか先頭にARRAY(0x35e08)というのが入り込みます。
これは何ですか?

793:nobodyさん
08/01/31 09:42:51
で、何が問題なのだろうか。
実行してみたら、以下のように3つ表示されたぞ。
(具体的な文字列は省略している)
line:3
line:7
line:8

794:nobodyさん
08/01/31 09:44:56
ひょっとして、検索用語を複数同時に指定したいとか?
探索する文字列を指定してください:2ch, AA, モナ
見たいな感じに

795:nobodyさん
08/01/31 09:47:25
>>792
その別件のソースを出さないことには分からないと思う件

796:755
08/01/31 09:58:21
>794
その通りです。

>795
Aから並べた単なる単語の羅列です。どんな文字列でもARRAY(0x35e08)
がマッチした文字列の一番最初に入ってしまう。
ARRAY(0x35e08) ←これは何?

(以下例)
acceptance
accompanying sheet
account


797:nobodyさん
08/01/31 10:46:42
おまいらよろしくお願いします。

CGI::Liteを使ったファイルアップロードで、漢字を含むファイル名を扱ってます。
特定の条件でファイル名がアップ時と変わってしまうのです。
条件は分かったんですが、どうすればファイル名を正常に扱えるかわかりません。

Perlのバージョン:5.8.2
クライアント:WindowsXP
発生条件:表、ソ、十などをファイル名に含む
現象:表などの文字より前が消えてしまう
例)画面表示内容.jpg が、 示内容.jpg に変わる。

ヒントください。

798:nobodyさん
08/01/31 11:02:46
>>797
jcode.plで変換するしかないかと。
あと、これ
URLリンク(digit.que.ne.jp)

799:nobodyさん
08/01/31 14:37:56
文字列検索プログラムを書いたぞ。phpだけど。
このファイルと同じディレクトリに[in.txt]という名前で文書ファイルがあるものとする。

<html><body>
<form method="POST" action="test.php"><input type="text" name="key" size=30>
<input type="submit" value="送信"></form>
<hr>

<?php
if($_POST["key"] == ""){
echo "</body></html>";
exit;
};

$key = $HTTP_POST_VARS["key"];
echo "検索キー:$key<br>";
// 検索キーを空白スペースで分割する。
$key2 = split(" ", $key);
// 要素数を出す。
$key2_cnt = count($key2);

$INFILE = fopen("in.txt","r");

$line_num = 1;
$cnt = 0;

800:nobodyさん
08/01/31 14:39:01
つづき

while($cnt < $key2_cnt){
echo "検索キー:$key2[$cnt]<br>";

while(!feof($INFILE)){
$line = fgets($INFILE, 1024);
$search_flg = strpos( $line , $key2[$cnt] );
if( $search_flg !== false ){
$out_line = "line " . $line_num . " : " . $line . "<br>";
echo $out_line;
}else{
// echo "この行にはありません。: $line<br>";
}
$line_num = $line_num + 1;
}
rewind( $INFILE );
$cnt=$cnt+1;
}

fclose($INFILE);

?>
</body></html>

801:nobodyさん
08/01/31 15:20:34
質問者は検索キーワードが複数でも対応ということだけど、
出力結果を具体的にどうしたいのかは分からないよな。

(例1)検索キー:モナー AA
[モナー]
line 3 :
line 5 :
[AA]
line 2 :
line 3 :

(例2)検索キー:モナー AA
[モナー]と[AA]を含む。
line 3 :

802:nobodyさん
08/01/31 19:00:55
>801
(例1)でお願いします。

803:nobodyさん
08/01/31 19:06:46
>>802
だったら、>>799-800のソースを動かしてみればいいぞ。
[test.php]のファイル名で保存して実行すればおk

804:nobodyさん
08/01/31 19:09:54
大体、例1を作る必要性って何だろうか。
そのキーワードの数だけプログラムを実行すればいい話なのに。
例2ならば分かるが。

805:nobodyさん
08/01/31 20:14:39
別の言語を持ち出すやつは、スレタイ読めないのか

806:nobodyさん
08/01/31 22:10:29
別の言語だけど、表記がほとんど似ているものだろ。
質問者はロジックを聞きたかったわけから、これで解決じゃね?

807:755
08/02/01 00:06:19
> 803
俺のサーバーPHP動きません。
>804
1000回プログラム動かせんから、ループで自動でやりたいと言ってるっしょ。

質問をもっと具体的にすれば良かったかしら。
「781のサンプルプログラムをループで動かす方法を教えて」
です。

808:nobodyさん
08/02/01 00:55:46
>>807
サーバでないといけない理由ってあるの?
ローカルで動かせばいいじゃん。XAMPPとかあるんだし。

809:nobodyさん
08/02/01 00:58:10
>>807
具体的に言えといわれて、具体例を出さないからこうなったんだと思う。

810:nobodyさん
08/02/01 01:07:14
質問者は>>799-800をPerlに移植すれば良いのかどうかの
事は言わないんだよな。
実際に出来上がってみて、あーだこーだいうんだろうな。
そんな態度だから最初に質問した時からおちょくられてるんだと思う。

811:perl好き情報4回生
08/02/01 13:26:52
修士出たら就職を考えている現在3回生の情報の学生でperlが一番すきですが、
今年に入ってからいろいろと求人情報を集めてみたところperlの仕事少ないですね
噂には聞いてましたが、僕は何が何でもperlを仕事にしたいのです
まあそれはおいといて、perlを仕事としてみたときどんな感じですかね?
皆さま先輩方の多くはperlを仕事としていらっしゃると思ったので、
是非とも業務内容、他言語と比べたときの待遇、仕事のやりがいなどなど、
ポジティブな意見(勧め)もネガティブな意見(愚痴)も生の声としてお聞かせ願えればと存じます。


812:perl好き情報3回生
08/02/01 13:31:25
間違えました。名前欄は3回生が正解です。

813:nobodyさん
08/02/01 13:45:35
>>811
確か、mixiとか、はてなは、perlじゃなかったかな。

で、お前は一体何年なんだ?w
修士を出てからということは、あと2年後に就職活動を
やり始めるということかな?
合計あと3年数ヶ月は親のすねをかじって学生をやると。

814:nobodyさん
08/02/01 13:49:55
人に情報をくれといってないで、まずは君の作った実績を出してみたら
どうだ。例えば>>755に対する答えのソースを作るとか。

815:nobodyさん
08/02/01 15:10:24
Perl大好きっていう気持ちはわかるけど、
Perlしかまともに出来ない人に就職口はないかと
というか回りから軽蔑される

816:nobodyさん
08/02/01 15:17:27
>>815
凡人に対しては同意だけど、とことんやってる人においては
その限りではないと思う。

817:nobodyさん
08/02/01 16:03:32
やれる人というのは、大抵その企業のやり方に会わなかったり、
自分が上に立ってやろうという考えを持つようになったりして、
会社員としてやっていくよりも、起業して社長としてやる場合が多い。

なので、君の場合は「良い所に就職する」ということよりも、
投資家を説得するプレゼンをするとか、誰もが納得できるような
システムを作る方向でやっていったほうがいいと思う。
Perlは、アクセスカウンタ、掲示板、チャット、ブログ、
ショッピングモールと発展してきたけれど、この次にあたるもの
を作るのを考えると良いだろう。

修士までいくのであれば、そのまま博士まで行って、松本氏のように
純粋に言語をやる道もある。

818:nobodyさん
08/02/01 19:19:56
人工知能とか?

819:perl好き情報3回生
08/02/01 23:20:23
皆様、予想外の多いレスに大変驚いてます。
ありがとうございます。

>>813 3を押し間違えただけです。3回生に相違ありません。w
> 合計あと3年数ヶ月は親のすねをかじって学生をやると。
そうなんです。そうした生ぬるい環境でありますが、全身全霊で取り組む覚悟です。

>>814
>人に情報をくれといってないで、まずは君の作った実績を出してみたら
魅力的な人材であることを立証できないです。僕はまだまだです。

>>815
>Perlしかまともに出来ない人に就職口はないかと
そう言われるとつらいものがありますが、C++を今からしっかりやって実力をつければ
重宝されるのではないかと考えています。

>>817
>投資家を説得するプレゼンをするとか、誰もが納得できるようなシステムを作る方向で
では後者でやります。Web上のプラットフォームの開発が出来たらいいなあとは思っています。WebOSとか。

820:nobodyさん
08/02/02 00:24:29
プロトコルが必要な今のネット、NGNも新しいプロトコルを使用することがすでに決まっており、WebOSha机上の空論だということすら知らないのでは無理かと・・・

821:nobodyさん
08/02/02 01:14:38
>>811
Perlも道具に過ぎない。
就職から定年まで約40年間ずっと同じプログラム言語を使い続ける事はまず不可能。
管理職になってプログラミングから足を洗えるのはごく一部。
学生の時点で言語にこだわるより、考え方・分析方法・設計方法を学ぶ道具だと割り切った方が良い。

そう言ってる漏れも、学校じゃPascalやらCやってて、就職してからはC、C++、VBやって、
独立してからは最初はDelphi使ってたが今はVBAとPerlとJavaScriptとSQLをやってる。
今後JavaやPHPもやることになると思う。


822:nobodyさん
08/02/02 05:18:25
>>818
新しく言語を作っていくという意味さ。
今のPerlはオブジェクト指向が完全でないとか、日本語で一部文字化けするとか
あるわけで、それを改善していくという方向はどうかなという提案です。
URLリンク(ja.wikipedia.org)

ま、アスペクト指向とかもあるからそっちへPerlを持っていくのも良いかもね。

823:perl好き情報3回生
08/02/02 09:07:03
>>820
そうだったんですか!大学にそういう専門の先生がいて、僕も影響を受けて
この一年いろいろ構想を練りつつ勉強を重ねてきたのですが、、、

>>821
いろんな言語を使いこなせないといけないんですね。
僕はC,C++,Perl,Java,Javascriptがお遊び程度に使えます。
が、perlはともかく、他の4つは本当に中途半端です。
perlスレだからもう少しはperlを主軸にして生計を立てられるという意見があるかと
思いましたが、皆さん違うようですね。現実は厳しいということでしょうか。

824:nobodyさん
08/02/02 11:57:53
Perl6 はがらりと仕様が変わるらしいから、それが一般に浸透すると
また状況が変わってくるかもしれないよ。

825:nobodyさん
08/02/02 12:00:31
Perlが好きだの書いてて、いかにも得意なもののように思える言い方だったが、
実際には、「Perlしか知らない」の間違いじゃないのか?w

826:nobodyさん
08/02/02 12:16:08
>>822
オブジェクト指向じゃないとだめって先入観は捨てましょう。
文字化けはどの言語でも日本語に限ったわけじゃないんだけど・・・

>>824
正規表現がすごいぞ

>>825
あえて誰も言わなかったことをw


827:nobodyさん
08/02/02 12:17:50
じゃ、「何言ってるんだ?」じゃなくて、よいしょする方向でw

828:perl好き情報3回生
08/02/02 13:36:26 9aX3NPkq
>>824
2010年以降になりそうですが、その頃はまさに僕が現役ですね。
例えば、どんな変化が予想されますか?

>>825
僕なんて落ちこぼれもいいとこです。perlしかできないどころかperlも満足にできないです。
ですが一身上の都合により毎日猛勉強しているので
そのうちいろんな言語を使いこなせるようになるよとは先生に言われました。
ただ、先生は業界のことを全くご存知ない方なので、こうやって情報集めしています。

829:nobodyさん
08/02/02 13:47:22
コンピュータ言語を毎日猛勉しなきゃならないなら、この業界は見込み無いから諦めたほうが良い。
使ったことない言語でも言語仕様書を4-5日読めば使えるのが普通。

毎日猛勉するなら英語を勉強したほうが10万倍役に立つ。

830:nobodyさん
08/02/02 13:51:33
>>828
今は Perl が下火で PHP や java が主流だけど、
これからは PHP や java が下火となり Perl が主流となる。

831:nobodyさん
08/02/02 13:53:43
「業界のことを全く知らない先生」の言う事を、
信じているのか、いないのか良く分からない件

832:perl好き情報3回生
08/02/02 13:53:53
>>829
そうなんです。僕はある事情で人より頑張らないと追いついていけないみたいです。
つくづく才能がないなあと思います。学校では出来る人を目の前にすると凹みっぱなしです。
大学に入ってから自分の才能のなさに気づきました
でも親に申し訳が立たないので猛勉強してついていこうとしています。
猛勉強なんて偉そうな言葉使ってごめんなさい。

833:perl好き情報3回生
08/02/02 13:59:49
連投すみません。

>>930
perl6になるとそういうふうになるのですか。
最近perlをやってていいのか不安になっていたので心が落ち着きました。

>>931
先生は非常に尊敬しているし、その先生の「そのうち出来るよ」という言葉も僕
には大きな支えになっています。
でも、就職情報は先生に聞くのでなく自分で収集する学生が多いです。

834:nobodyさん
08/02/02 14:54:59
>>833
君は、他の言語を学ぶ必要性についてはどう思ってるの?

835:nobodyさん
08/02/02 15:13:04
>833
藻前、なにか勘違いしてないか?
プログラミングってのは、コンピュータに呪文を唱えて仕事をさせる事じゃないぞ。
コンピュータという、言われた事しか出来ないモノに、指示を出して仕事をさせる事だ。
コンピュータはあいまいさがある人間の言葉で指示されても理解できないから、専用の言葉・文法を使う。

プログラミングを学ぶ上で一番大切なのは、自分が出したい指示をあいまいさなく、的確に表現できる能力を身につけることだ。
文法や単語(命令)なんかは、分からなきゃ辞典(リファレンス)を見ればいい。

836:nobodyさん
08/02/02 15:46:15
Perlを使った仕事をしたいのなら、不安だのいってないで、
まっすぐにその方向に進めばいいんでないの?
情報処理の資格を取ろうと思っている人が、突如法律の勉強を
したりしないのと同じ。
絶対に完璧で将来がある選択肢なんてないわけで、自分の思う方向、
好きな事に一生懸命に取り組むかどうか。

837:nobodyさん
08/02/02 17:14:06
本当にプログラムやりたいなら、データベースもやらなきゃいかんよ。
今業務でやってるのはPHP+MySQL
ちなみに、Perlはもちろんこと、Ruby、C/C++、VB、Java等も勉強した。
趣味で組むのはPerlかな。

838:nobodyさん
08/02/02 18:01:41
いや、この人の場合は、SEやプログラマーとして仕事をやりたいとかじゃなくて、
「Perlをやりたい」んじゃないかなぁ。

839:nobodyさん
08/02/02 18:06:49
天才的な感があるヤツ以外、母国語が得意じゃないヤツはプログラミングを仕事にするのは難しい。
Perlを使った仕事をすると言っても今からPerlを使いこなせるようになっている必要は無いだろう。
まずは本を読め。次に数学(離散数学系)を学べ。
それが出来るのは学生のうちだけだ。

840:perl好き情報三回生 ◆qqt5.0NxB6
08/02/02 21:53:31
>>834 現段階ではc/c++をよく学ぶつもりですが僕のような経験不足な人間には到底分からないです。

>>835 なるほど、要求を的確に表現する能力が大切なんですね。とてもためになります。

>>836 僕の場合その突如があるので危なっかしいです。
それに一生懸命すぎて身を滅ぼしがちなアンバランスな人間だと思います。

>>837 MySQLですか。実務的なDBの経験はほとんどないので、机上に留まらず精進します.

>>838 というよりもperl的な文化が好きです。ネットや身の回りでperlerに親しみを感じるので、
こうした人たちとこうした文化を創っていきたいと思ったんです。

>>839 高2と高3の頭は大学数学の本を読んでいたので、数学は得意です。
本は一応月に20冊くらい読みますが、やはり周りの人がすごすぎるので、
今の5倍は読みたいです。

841:perl好き情報三回生 ◆qqt5.0NxB6
08/02/02 21:55:40
ちょっと修正です。連投失礼します。

>>834 現段階ではc/c++をよく学ぶつもりですが、僕のような経験不足な人間には
いろんな言語を学ぶ必要性など到底分からないです


842:nobodyさん
08/02/02 23:48:00
プログラム言語に依存した考え方を学ぶのは、現場に入ってからで十分。
Perlも道具の一つだと認識し、道具選びは適材適所だって事を理解しろ。
ついでに言えば、学習用のプログラム言語は1個に絞っても桶だ。
ただ、面接対応で考えりゃPerlだけじゃ押しが弱い気もする。

843:nobodyさん
08/02/03 00:09:50
学部3年で進学希望かつその後は将来ソフトウェア開発の仕事を希望していて
今から独学でperl学ぶの? なんか色々矛盾してるな… 専攻変更したって言うことか?

844:nobodyさん
08/02/03 11:27:58
COBOLプログラマが大量に解雇されたという話知ってる?

845:perl好き情報三回生 ◆qqt5.0NxB6
08/02/03 23:32:26
皆様、アドバイスありがとうございます。

>>842 面接を考えるとperlだけじゃ弱いんですね。perl, c/c++, javascript, java, perl,
lisp, vbは勉強する予定です。そのうち、最初の2つ(perl, c/c++)に力点を置く予定です。
perlをとくに絶対視・唯一視しているわけでもないです。
言語に依存しない考えをいまのうちによく勉強することが大切なんですね。

>>843 専攻変更ではないですが、最初は数学科に行く予定でしたが、土壇場で情報に変えました。
将来perlの仕事につきたいという思いはもちろんありますが、それほど決まっていなくて、
今は情報収集しています。どこか矛盾していますか?

>>844 聞いた気もしますが、全然知りません。


846:nobodyさん
08/02/03 23:40:34
とりあえず、大文字小文字の使い分けから始めない?
COBOLはシステムを切り替えられる資金のあるところは人の入れ替えしてるが、無いところは細々と雇い入れてる。
まぁ、SIは先が無いので、エンドに引き抜かれないかぎり先は無いね。

847:nobodyさん
08/02/03 23:42:52
全体像が見えていないとかいいながら、異様にPerlにこだわっている
感があって、なんか良く分からないな。
PHPやC#は、あえてはずしているというよりも、その存在を知らないのかもな。
で、このスレはPerlのくだすれであって、お前の人生相談用スレではないので、
スレ違いの話をするつもりなら、出て行ってくれないか?マ板でやったらどうだ。

848:nobodyさん
08/02/04 00:06:37
どのスレに移動するかを教えてくれたら、俺はついていくぞ。

849:nobodyさん
08/02/04 12:48:01
10年前からperlなんか廃れるとか仕事にならないとか言われ続けてるけど
いまだに仕事になってるから死ぬまではなんとかなるんじゃないかな

中小企業のWEB屋でいいならperlの仕事はあるぞ


850:nobodyさん
08/02/04 14:03:12
Ajax の例とかもあるしな。どうなるかは誰もわからない。

851:nobodyさん
08/02/05 14:08:38 ke8bjavM
phpをperlに書き換えて欲しいです。
わかる人お願いします。

<?php
//パラメータの取り出し
$CID = $_GET['cid'];
$cc = $_GET['cc'];
$SID = $_GET['sid'];
$CH = $_GET['ch'];
$C1 = $_GET['c1'];

//パラメータ判別
/*処理*/


//処理
header("Content-Type: text/plain; charset=Shift_JIS");
print"rc=0\r\n";
print"u1=URLリンク(www.abc.jp)";
/*処理*/
print"c1=AAA\r\n";
print"u2=URLリンク(www.abc.jp)";
print"END\r\n";

?>

852:nobodyさん
08/02/05 14:15:13
>>851
CGI.pmつかってもいいの?

853:nobodyさん
08/02/05 14:23:16 ke8bjavM
<?php から ?>までをそのままperlに書き換えるのが不可能なら構わないです。



854:nobodyさん
08/02/05 16:02:31
URLリンク(www.abc.jp)

855:nobodyさん
08/02/05 22:54:03
use CGI;
my $q = new CGI;
my $cid = $q -> param( 'cid' );
後同じ

print "Content-type: text/plain; charset=Shift_JIS\n\n";
print "rc=0\n";
後同じ


856:nobodyさん
08/02/05 23:10:03
Perlの世界には $_GET['cid']; とか $_POST['cid']; とかないからね。
受け取った文字列を & で split して、さらに = で split して。という
処理から始まる。
CGI.pm使わないと同じような構文にはならないだろうね。

857:nobodyさん
08/02/05 23:13:32 LtG8FBU3
windows xpで、perlからwindowsのアプリケーション(例えば
電卓のcalc.exe)を終了させるにはどうやればいいですか?

perlに関する知識はURLリンク(www.rfs.jp)こちらのサイト
を読み終えたくらいです。

858:nobodyさん
08/02/05 23:23:42
Perlでそんなこと出来るの?

859:nobodyさん
08/02/05 23:37:33
WindowsAPI使えば、プロセスの終了とかできるかも

860:857
08/02/05 23:49:41 LtG8FBU3
>>857です。

>>858
返信ありがとうございます。windowsプログラミングについてもさっぱりなんですが
>>859さんのおっしゃるようにwin32api系のものを使えば出来そうな気がしたんですが。
linuxとかだとsystem(kill~って感じでそのまま出来るんですかね。

>>859
返信ありがとうございます。
プロセスの終了も良く分かってないんですが、その辺の仕組みを僕くらいの低レベルでも
わかるように紹介されてるページとかご存知でしたらご紹介頂けたら幸いです。

861:nobodyさん
08/02/06 00:20:44
残念ながらそれはwebprog板では板違いなのだ。

862:nobodyさん
08/02/06 10:22:36
Kent
CGI.pm
Mason
Sledge
Catalyst
Jifty
Reaction
間にいろいろハサんで欲すぃ

863:nobodyさん
08/02/06 10:35:41
おっとCGI::Applicationを忘れていた
Kent
CGI.pm
CGI::Application
Mason
Sledge
Gantry
Catalyst
Jifty
Reaction


864:nobodyさん
08/02/06 11:59:40
system "taskkill /im calc.exe";

865:nobodyさん
08/02/06 16:07:31
ん?しりとりでもやりたいのか?w

866:nobodyさん
08/02/06 17:39:26 z242xw4+
すいません、質問お願いします。
一行テキスト と テキストエリア と 送信ボタン と hiddenがいくつか のフォームを作りました。
jcode.plを通して、デコードする仕組みにしました。

テキストエリアに、600文字以下の、少ない全角文字を入力し、送信ボタンをクリックすると、
ログファイルに記載され、意図した表示になるのですが。

テキストエリアに沢山の文字(662文字以上)を入れ、送信ボタンを押しても反応しません。

perlには、フォームに入力する文字制限などがあるのでしょうか?
600文字程度ですと、使用目的では文字数が足りないので、なんとか直したいのですがどうしたらよいでしょう?

867:866
08/02/06 17:42:41 z242xw4+
追記です。

IE6だと、ボタンをクリックしても無反応なのですが。

FireFoxだと、一応書き込みができました、
しかし、やはり全角文字600文字程のところから後が切れて、ログファイルに記録されます。

また、全てが半角の数字を入力した場合には、何文字でも入力できる感じです。
宜しくお願いします。

868:866
08/02/06 17:50:10 z242xw4+
すいません。訂正です。

半角数字でも、1000文字程度しか書き込みができませんでした。

869:nobodyさん
08/02/06 17:50:25
method="POST"

870:nobodyさん
08/02/06 17:51:53
enctype="multipart/form-data"

871:866
08/02/06 18:04:28 z242xw4+
>>869,870
ありがとうございます
メソッドをポストにしたら出来ました!


872:nobodyさん
08/02/08 17:15:00
#!/usr/local/bin/perl
eval { $test=; };
print "fin"

この三行スクリプトを実行するとfinが表示されずに

syntax error at test.pl line 2, near "=;"
Execution of test.pl aborted due to compilation errors.

が表示されるのは正常なActivePerl(forWin)およびevalの振る舞いですか?

873:872
08/02/08 17:24:04 ZczohSgB
上げ忘れ。
ActivePerlのperl -vはPerl v.5.8.8 / build817です。

874:872
08/02/08 18:04:44
わかた(´д`)y-~~シンタックス系のいわゆるコンパイルエラーはevalで拾えないようで、
拾えそうなイキフンで記述してあるリファレンスが誤りです。大変ありがとうございました。

875:nobodyさん
08/02/08 18:57:59
eval q{ $test=; };
$@

876:797
08/02/14 15:20:19
おまいら解決したので報告します。

実は>>798が教えてくれたページを参考に作ったプログラムだったのですが、そこに罠があったのです。
ファイル名をSJISにするということで、アップページの文字コードもSJISにしていたのですが、
SJISで特定の文字(表、ソ、十など)にはWindowsでパスの区切りに使う\のコードが入っているので、
その部分が区切りと解釈されて、ファイル名が切られていたのです。
そこで、アップページの文字コードをUTF8にした所、切られることなく正常動作するようになりました。

おまけ
最近遭遇し一応解決したネタを1つ。
なぜか、CGI::LiteとIE6(最近のパッチ以降?)の組み合わせで<INPUT type="file">が複数連続すると、
途中のファイル名が取得できません。ダミーで<INPUT type="hidden">を挟むと大丈夫です。


877:nobodyさん
08/02/14 16:19:19
おまそれはPerlの一番最初に習う、しかも新規の人は既に誰も使わな(ry

>なぜか、CGI::LiteとIE6(最近のパッチ以降?)の組み合わせで<INPUT type="file">が複数連続すると、
あーわかるわかる。初心者にありがちなバグだね。
おれもHTTP拡張のバウンダリ周りで苦労した。10年ぐらい前に。

878:nobodyさん
08/02/18 22:53:11 b8HgX1gh
お願いします。
配列、@listの中には5つの要素が入っています。
そのなかの3つ目を削除するにはどうすれば良いですか?
$list[3] = ''; だと中身が空のまま要素数は変わりません…。

879:nobodyさん
08/02/18 23:31:32
splice @list, 2, 1;

880:878
08/02/19 00:10:37
>>879さん、ありがとうございました。

881:nobodyさん
08/02/20 18:43:38
ここって超初心者の板じゃないの?
モジュール関係の質問見ると引くぞ
>>878のスレ見て少しホッとしたけど

882:nobodyさん
08/02/20 18:51:36
板とスレ
スレとレス

間違えてるぞ

883:nobodyさん
08/02/20 20:04:29 AT7Ymvry
掲示板で書き込んだ人のIPを取得するにはどうしたら良いのでしょうか?
$〇〇 = $ENV{'REMOTE_ADDR'};
でIPを取得したのはわかったんですが、フォームの中に<input type=hidden name=△△ value=$○○>などで他人に書き込みさせても自分のIPが表示されてしまいます
色々ググったりしたんですが良く分かりません
優しい解説お願いします

884:nobodyさん
08/02/20 20:25:09
>>883
hiddenタグでやろうとしていることがいまいち分からないが、
通常は、書き込んだ時にログファイルに一緒にIPアドレスを
書き込むものなんだが。

885:nobodyさん
08/02/20 20:30:56
>>884
スクリプトは時刻表示とコメントだけの、一行掲示板の簡易なものです
一緒にとはどういうことなのでしょうか?
ログファイルには時刻とコメントしか載りません
超初心者ですいませんm(_ _)m

886:nobodyさん
08/02/20 20:42:58
>>885
その、時刻とコメントを書き込むファイルに、IPアドレスも一緒に
書き込む方法があるでしょといいたいのだよ。
表示する際はそのデータは必ずしも出す必要は無いのだから。
それが嫌ならば、書き込みをしたときに内部的に別なファイルにも
IPアドレスと時刻を書き込ませるようにプログラムを書けばよい。

887:nobodyさん
08/02/20 20:55:23
>>885
フォームにセットしなくても、書き込んだ人のIPはこれで取り出せるよ → $ENV{'REMOTE_ADDR'}

888:nobodyさん
08/02/20 20:55:38
>>886
IPアドレスを一緒に書き込むプログラムの書き方を知りたいんです(;∇;)/~~色々ググって、配布されてるスクリプトから該当する部分を抽出して頑張ったんですが...良く分からなかったんです、

889:nobodyさん
08/02/20 20:57:55
>>887
レスありがとうございますm(_ _)m
それでIPは表示されるのは分かったんですが、それをどこに設置すればログに書き込んだ人のIPが表示されるかが分からないんです(;∇;)/~~

890:nobodyさん
08/02/20 21:04:58
>>889

open(OUT,">> log.txt");
$line = $ENV{'REMOTE_ADDR'};
print OUT $line;
close(OUT);

891:nobodyさん
08/02/20 21:07:00
>>889
コメントの後ろにくっ付けちゃえw

892:nobodyさん
08/02/20 21:14:53
aska とか kent の BBS にはログにIPアドレスを記録するコードは
あったはずだが。
それらを読んでも分からないのであれば、何処かに君が書いたソースを
うpしてここに貼りなさい。気分が向いたら改変してやるからw

893:nobodyさん
08/02/20 22:19:30
先程はありがとうございましたo(^-^)oおかげさまで解決しましたw

もう一つ質問させて下さいm(_ _)m

($sec,$min,$hour,$day,$mon,$year,$wday) = localtime(time);
$week = $weekday[$wday];
$mon++;
$date = "$mon月 $day日 $hour:$min";
という時刻表示のスクリプト(年が無駄にあるのは気にしないで下さいw)を使ってる?んですが、$minの所だけを1ケタの秒の時だけ01や02みたいに0を先頭に付けたいのですが、どのようにすれば良いのでしょうか?
ちなみに 2月20日 22:04
というような事です!

894:nobodyさん
08/02/20 22:24:58
>>893
printf使うとか。

また、例のごとくそれの使い方が分からないということであれば、
以下のコードを付け加える。

if($min>9){
$min = "0" . $min;
}

895:nobodyさん
08/02/20 22:40:01
$ENV{'TZ'} = "JST-9";
($sec,$min,$hour,$mday,$mon,$year,$wday,$d,$d) = localtime;
$date = sprintf("%04d/%02d/%02d(%s) %02d:%02d:%02d", $year+1900, $mon+1, $mday,
('Sun','Mon','Tue','Wed','Thu','Fri','Sat')[$wday], $hour, $min, $sec);
print $date;


896:nobodyさん
08/02/20 22:48:10
>>893
これはどうなの?
$date = sprintf("%2d月%2d日 %2d:%02d",$mon,$day,$hour,$min);
print $date;

897:nobodyさん
08/02/20 22:53:59
>>895
$dは無くても良いぞ。
どうしても書きたいなら、undefにすべし

それと、
my( $year, $month, $day, $hour, $min, $sec, $wday ) = ( localtime() )[5,4,3,2,1,0];
って言うのを覚えると見た目に麗しい

898:nobodyさん
08/02/20 23:05:01
perlは配列の要素が足りなければ
足りない分の後ろの要素は無視されるから
必要なければ書かなくてよろし

899:895
08/02/20 23:06:42
>>894が正常に動かない気がして5年も前に書いたやつ貼っただけだから

900:nobodyさん
08/02/20 23:12:33
下らない質問に親切に答えていただいて本当にありがとうございました!
23:06 とかできました(゜∀゜;ノ)ノ

また何かあったらよろしくお願いします!(b^ー°)

901:nobodyさん
08/02/20 23:34:16
もう2度と来るな

902:nobodyさん
08/02/21 03:45:40
>>897
$wday いらね

903:nobodyさん
08/02/21 09:53:00
>>902
あぁ、ほんとだ。


904:nobodyさん
08/02/21 16:13:36 VlnHmaCl
掲示板で
[3]内容
[2]内容
[1]内容
みたいにレス番号を付けるにはどうしたら良いのでしょうか?

905:nobodyさん
08/02/21 16:50:55
おまえ>>883だろ。
全部聞きに来るなら一から勉強しろよ。

906:nobodyさん
08/02/21 17:10:04
>>904
お前の質問の仕方は抽象杉でわけわかんねえんだよ。
質問したければお前が書いたコードをうpれ。話はそれからだ。

907:nobodyさん
08/02/21 17:42:47
自分なりに勉強してやってみたんですが分からなかったので質問しに来ました

まあもう良いです

908:nobodyさん
08/02/21 18:09:09
>>904
全データ読み込んで、内容の数を数えて、
・ 一番上の内容を表示する前に数えた数を
・ 次の内容を表示する前に(数えた数-1)を
と出していけばいんじゃね?

データフォーマットも表示部分のソースも無いんじゃ
エスパーでもないかぎり(ry

909:nobodyさん
08/02/21 18:17:46
「出来ないやつ」の典型的なパターンだなw
・自分なりの勉強したはずなのに「本当に調べたの?」といいたくなる程度であるところ。
・「もう良いです。」とすぐにさじをなげるところ。
もう良いというのならば、このままPerlも辞めた方がいいぞ。道はいくらでもあるんだから。

910:nobodyさん
08/02/21 21:37:27
ちょっと直したい時に全部調べるのがカッタルイってのはすげーよくわかるよ。
おれも子供の頃「関数内から抜けるコマンド何だっけ?」と電話で聞いたことある。あれは助かった。
でも何カ所も直したり、まして新規でBBSを作るなら、オマエそれ全部おれに書かせるのかって。

911:nobodyさん
08/02/21 23:40:01
数年前はぐぐるにしても、日本語サイトが少ないからある程度英語が読めないと
駄目だったとか、検索エンジンの使い方のコツをある程度体得しておかなければ
目的のコンテンツにたどり着けなかったりしたから、その気持ちは分かる。
Perlのサンプルソースを手に入れる時、検索を使うよりも、2chの専用スレの
テンプレのURL一覧を見た方が早いなと感じた場合もあった。

だけど、今は大分検索エンジンの使い勝手も良くなり、目的のものがヒット
しやすくなった。Perlのこの程度の事なら日本語だけでも大丈夫だしね。
この状況で、このレベルのことが分からないなら、もう無理だと思う。

912:nobodyさん
08/02/21 23:46:33
ラリーもあきれ顔です
URLリンク(upload.wikimedia.org)

913:nobodyさん
08/02/22 07:19:54
一つの発言に対してこれ程執着するとは(^w^)
ここがどれだけ過疎ってるかを表してますね

914:nobodyさん
08/02/22 07:55:30
よし、じゃPHPのくだすれと統合するか?w

915:910
08/02/22 10:59:13
>>911
っつーかググレが一番要らない。何でもググレばわかる筈だよ。理論上。
「これどうやるの?」「正規表現」みたいな一行レスもググレと同じで意味が無い。
ググレ言っていいのは通常スレ内だけで、こういうスレは隔離用だから、答えたい人
だけが見て、答えたくない人は見なければいい。教えてgooと同じ。たとえば

「C 関数 戻る」

で検索すると、return()はなかなか出て来ない。だからといって普段Tcl/Tk専門で
やってるSUNの社員に、一時的な知識のために参考書を買わせるのも無駄が多い。
ただ全部は聞きに来るなよって。

916:nobodyさん
08/02/22 11:35:20
レスの内容が「ググレカス」と「正規表現」とは大きく違うと思うが。
後者は、情報にたどり着くまでの手助けを十分にしているといえる。
ひろゆきも、この簡潔な回答が出来るのは、2chの特徴であり、
他のサイトのくだらない挨拶をしなければならないところとの
大きな違いだといってたぞ。

917:nobodyさん
08/02/22 11:40:32
質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドなのに
正規表現で分かるのかよw

918:nobodyさん
08/02/22 12:38:27
まぁ時間と金をかけて勉強すりゃわかるだろうけど、当面の一つの目的さえ達成できれば、
あとはPerlなんて一生触りたくない層が最も多い。つまり言語がPerlなのはあるツールが
元々Perlで書かれていたからで、欲しいのはINとOUTのデータだけ。
こういう層に正規表現をわざわざ勉強させる必要は無いし、あればとっくにやってる。
そういうわけで具体的に一連の処理を書くことが望ましい。べつに10秒で書けるんだから。

また追加モジュールの紹介も価値が低い。モジュールのインスコが一番難しいんだから。
rootが必要だし、客先のネットワークによって無保証のモジュールの導入を禁止されている。
必ずしも導入できなくはないが、自社でアップデート対応を保証しなくてはならない。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch