Perlについての質問箱 8箱目

このエントリーをはてなブックマークに追加
>>862
> -wを指定した時、
って言ってるから、ソース変更しなきゃいけないんじゃ意味ないかと。
864perl FTPツール質問:04/03/10 16:44
今、掲示板を作ってるんですけど、
cgi(perl)の先頭行で
#!/usr/bin/perl   はOUTで
#!/usr/bin/perl -- だとOKなんですよぉ...

"--"って何なんでしょうか??
ちなみにFTPツールはNex○FTPです。
roo○FTPならいけるという情報も...
nextFTPで--無しでアップする方法は無いんでしょうか??
ソース全体についてある種のwarningが出なくなるというのでいいなら、

perl -w -M-warnings=〜 hogehoge

とかすればいいんじゃねーの?

ただし、漏れとしてはソース直して必要なところに個別にno warnings
書く方がいいと思うけどね。それ以外の場所で予期しないのが出る状態
になってたときに発見が遅れると思う。

>>864
改行コードを誤認識されるせいらしい。
8671●CLIE ◆GodOnnFcO. :04/03/10 18:02
多少偽れてもいいので>>842が可能かどうか教えて下さい
次回のOyster争奪の投票に利用したいので
じゃー無理で。

スレ違いだ、ボケ。とっとと消えろ。
> この板はプログラムを作る人のための板です。
> あらゆる質問はまずすれ立てるまでもない質問はここでスレにしてください。
投票のためって大義名分があれば、ローカルルールを
無視してもイイとでも思ってるんだろうか。
読んでないんだろ、どうせ。
>867
未承諾広告さんに聞けばいい

\e
>>867
ともかくサーバ側で動く集計プログラムの仕様がわからにゃ何とも

MACで票の一意性を保ってるならLinuxなら自由にMAC設定できなかったっけ?
パケット偽装するならイーサネットレベルだからスクリプト言語なんかじゃ無理だと思うが
873デフォルトの名無しさん:04/03/10 20:18
サーバサイド・スパイウェアをPerlでつくるスレはここですか?
はどうえやIDを検証する方法があればねぇ(哀)
投票数を & 0xFF すれば愉しそうだけど。@嫌われているところが一目瞭然(w
お神籤でもあみだくじでもよさそうな。
MAC設定出来るも何も、レイヤー考えれ

まーネットで信頼性のある投票なんてできた試しがないよな。

どうせネットで送信するのだから、送信するものはいくらでも偽装できるし。
やるとしたら、ハードウェア固有の何か(ここで言われてるようなMAC
アドレスとか)を独自アルゴリズムでコード化してそれを送信して、
受け取る側ではそのコードの整合性をチェックすればいいと思うけど、
そうするとアルゴリズムは当然秘匿しなきゃいけないから、Perlじゃ無理だね。
独立スレでも立てたら?
独立スレたてたところで、
厨房っぽさ前回の香具師らが騒ぐだけで
まともな意見はでないと思われ
ドングル買った奴だけ投票できるようにする。
技術的にはhttp://www.jpki.go.jp/使っても出来るけど、犯罪だね。
8791●CLIE ◆GodOnnFcO. :04/03/10 23:49
perlじゃ無理か、、
PHPでも無理らしいです
ってか専用ソフトでもないと不可能ですかね、、
>>879
もう書き込まなくていいよ
ネットワーク上の特定のノードを検出できる絶対に偽装が不可能な
方法が必要なわけですよね。もしそれを思いつくことが出来たなら、
2ちゃんの鯖投票に使う前に特許とって会社起こしたほうがいいですよ。
882デフォルトの名無しさん:04/03/11 00:37
HTML::FormParserというモジュールCPANからとってきたのですが
サンプルどおりにやってもうごきません。

use HTML::FormParser;
$p = HTML::FormParser->new();
$p->parse($html,
 start_form => sub {
my ($attr, $origtext) = @_;
 print "Form action is $attr->{action}\n";
});
start_タグ名という名前で関数を渡してやれば、タグを発見した時にコールバック関数が呼ばれる
見たいですが、何も表示されません。

どなたか使ったことあるかたいましたらおしえていただけませんでしょうか?
一人で複数のノード持ってたり、一つのノードを複数人で共有してたら、
どうなればいいの?
# 完全スレ&板違いだが
板違いのレスで埋まりまくってんな。

>>879
あんたのように板違いを承知でマルチしてるやつが
投票の管理をしてるとはね。
すれ違いですまないがレス。

ここまでのレスで指摘されたのはMACアドレス偽造などのネットワーク的な問題点。
perlだからどうというものではない。(クライアントサイドだしperlが向いているとも思わないが)

したがって、もし続けたいならネットワークプログラミングのスレへ移動するのを薦める。
>>882
今、インストールして動かしてみたがチャンと動いたぞ。
まさか、お前、$html空じゃなかろうな?
>>882
$htmlにはどんな文字列を入れましたか?
>MACアドレス偽造
LANカード複数持ってればそれだけ投票可能

メール認証はISPメールに限定すればいけるかも
889デフォルトの名無しさん:04/03/11 01:40
>>886,>>887
HTML::FormParserのドキュメントには書いてなさそうだったので
HTML::Parserのparse()を見てみたのですが
ファイル名かファイルハンドルを渡せばよいのではと思っているのですが
間違ってましたか?両方試したのですが何も出力されません。
>>889
>HTML::Parserのparse()を見てみたのですが
> ファイル名かファイルハンドルを渡せばよいのではと思っているのですが
それは、parese_file!

それをやりたいなら、FormParser.pmに次のものを書き加えろ。

sub parse_file
{
my ($self, $file, @types) = @_;
my %cbs = @types;

for (@tag_names) {
$self->{$_ . "_callback"} = $cbs{$_} if exists $cbs{$_};
$self->{$_ . "_start_callback"} = $cbs{"start_$_"}
if exists $cbs{"start_$_"};
$self->{$_ . "_end_callback"} = $cbs{"end_$_"}
if exists $cbs{"end_$_"};
}
$self->SUPER::parse_file($file);
}

一回吊ってこい
891890:04/03/11 02:00
>>890
s/parese_file/parse_file/

くそ、つい興奮してしまった、鬱
まずはFormくらい自前でパースできるようになろうね
モジュールに手を出すのはそれから
893デフォルトの名無しさん:04/03/11 08:07
>>889

PODを読むとDESCRIPTIONの冒頭にはっきり書いてあるのだが...

HTML::FormParser takes a string containing HTML text and parses it, looking for forms.
ケチ論
英語が読めない香具師はCPANモジュールを使うなどという、大それた野望を抱いてはいけない!
ttp://cgi0.biwa.ne.jp/~yabuta/study/jmeter/

↑みたいなperlで書かれたapache負荷計測プログラムみたいなもんてあります?
896デフォルトの名無しさん:04/03/11 13:41
webprog板から誘導されてきました。
変数を別ファイルに設定ファイルとしたい。
ラクダvol2のdo関数の項目でdoを使うとよいとかいて
あったけど、use strictを使うとaborted due to compilation error
と怒られました。use varsで変数を宣言しても同様です。
<main.pl>
use strict;
do './ini.pl';
print $aa;
<ini.pl>
use vars qw/$aa/;
$aa='aa';
スコープの問題だと思うけどuse strictを使って
exporterやファイルopenして処理する方法以外でよい方法は
ない?設定ファイルは簡潔にしたいので。。
>>896
あらかじめini.plの中で定義したい変数名を決めておいて、main.plの
側でそれらをuse varsしとけば問題ないはず。ini.plでuse varsしても
ダメ。

898337:04/03/11 13:54
>>897
いけました。ありがと。
use varsはパッケージグローバルで
ファイルの終わりによって効果が切れるから
という理由でいいのかな。
>>898
違うだろ。単純にdoでコピペするファイルの中身はコンパイル時には展開されていないつぅ事だろ。
試しにini.plの中にuse varsで定義してない変数を書き込んでごらん。素通りだから。
要するにuse strictの恩恵は受けられないつぅ事だ。いいんだか、悪いんだか。
設定ファイルを持ちたいなら
キー=値\n
とでもしてハッシュにぶち込んだ方が保守性良くないか?
なるほどそういうことだったのか。誤解していたよ。

同様にeval使って

use strict;
eval '$x = 1;'

なんてのも通るのね。知らんかったわ。

902896:04/03/11 14:54
>>899
すっごいわかった。今までの疑問がすべて溶けていったよ。
もひとつ便乗質問します。

<main.pl>
use strict;
my $aa;
do './ini.pl';
print $aa;
<ini.pl>
$aa='aa';
上のソースでmain.plのprintが表示されないのは
どうしてでしょうか?
実行時
use strict;
my $aa;
{$aa="bb";}
print $aa;
こんな感じになるって思ってたんだけど。。
903896:04/03/11 14:57
>>900
確かにそう。だけどファイルオープンしないで
するのってなんかスマートかなって。
>>902
myはそれが宣言された最内のブロックまたはファイルの末尾までが有効範囲。
ini.plの中の$aaは別ファイルだからmain.plの$aaは見えなくてmainパッケージの
$aa($main::aa)になってるはず。

ラクダ本3版の2.5.1名前の探索をよく読もう。
>>902
コンソールの具合だろ。
print $aa,"\n";にしたら確実に表示されるだろ。


それより、そんな経験の少なさでuse strictの恩恵を
受けられないdoのコピペで大丈夫かよ。
まあ、他人のやる事だからどうでもいいんだけど。
せいぜい、もがいてperlの達人になってくれ
906905:04/03/11 15:20
>>905
おっと、俺が経験不足だった(w 吊ってくるわ
>896
向こうにレスしようと思ったら誘導されたのねん。

設定ファイルでpackage宣言して呼び出し側で$pacage::aa;で呼び出すのは駄目?
というかそもそも変数だけのファイルならdo使う意味があまり無いんじゃ。
単にrequireで良い気がする。
908896:04/03/11 15:42
>>904
読みました。納得!!以前読んだ時は具体的な意味わからなかったけど
こういうことなんですね。ありがとうございます。
そのページにこのスレの印刷はっときます。
>>905
はい、頑張ります。perlってなんか面白く感じるから飽きないね。
909896:04/03/11 15:50
>>907
駄目じゃないです。いい方法のひとつだと思います。
requireでなくdoなのはラクダ本で紹介されてたから。
910デフォルトの名無しさん:04/03/11 15:50
>>903
package Hoge::Config;
no strict;
%config = ( hoge => hage, ... );#パケージグローバルな変数
1;
--------------
use strict;
use Hoge::Config;
%Config::config;
or
my %config = %Config::config;
--------------
でいいじゃん。
911910:04/03/11 15:52
>>910
とか、ファイルでもつなら
--------------
use strict;
use Data::Dumper;
my %config = ( hoge => hage, ... );
open CONFIG, ">foo.conf" or die "CONFIG: $!\n";
print CONFIG Dumper(\%config);
close CONFIG;
--------------
でどっからでも、
use strict;
my $config = do "foo.conf";
print $config->{hoge}; #hageです
--------------
なんかさあ、
Config.pmにハードコーディングした
パッケージグローバルな変数書いといて、
完全修飾して使うなり、レキシカルにコピーするとか
がまともなんじゃねえの?

とか、普通しねえけど同じpackage 宣言しといて
名前空間同じにするとか、

どっちにしたって読み込むのにopenせんでも
ちゃんとした方法が用意されてるだろうに
912896
>>910 かっこいーですね。
でも、perl勉強のためにはいいんだけど
できればini.pl側はiniファイルみたいな形式に
したくて、かつmain.pl側ではuse strictを使って
フリーのスクリプトみたいにrequireとかで一発取り込み
をしたかったんです。