くだすれPerl(超初心 ..
[2ch|▼Menu]
35:nobodyさん
06/10/15 00:17:49
変なセキュリティソフトでも入れてるんじゃないの?

36:24
06/10/15 10:44:12 sPLkCqaF
すみません、自力で解決しました。

windowsでは、使っているクライアントやプラウザを知る環境変数は
「HTTP_User_Agent」でも動きますが、unixでは「HTTP_USER_AGENT」と
ちゃんと書かないとダメみたいです。
大文字と小文字だけで、大きな違いです。
>>35さん書き込みありがとうございます。
本当に大変お騒がせしました。

37:nobodyさん
06/10/16 16:10:49 1+lDbjJH
@niftyのCGIは、Perlの標準ライブラリ使用禁止なんだな〜。つまらない。

38:nobodyさん
06/10/26 07:54:58 BE:108125928-BRZ(1033)
Perlで2chに書き込みたいんですが、クッキーだとかなんだとか意味がわかりません
dat取得するまではなんとかわかるのですが……、参考になるサイトなどはありませんか?

39:nobodyさん
06/10/26 08:21:44
荒らしツールでつか?

40:nobodyさん
06/10/26 09:05:17 BE:162187283-BRZ(1033)
昔2chでIDバトルというスレを見つけたのを思い出して真似してみようかなと思っています。

41:nobodyさん
06/10/26 10:32:06
つまりIDをとるだけのためにいちいち書き込むと?

42:nobodyさん
06/10/26 11:11:39 BE:94610227-BRZ(1033)
ID取得はdatから抽出することでできたんですが、スレに結果を出力できません……。
ローカルで結果を何回も出力させていっても自分がパンクしそうなので自動化しようと思った次第です

43:nobodyさん
06/10/26 16:14:52
あー、そういう事か。理解した。

基本的に2chは容易に荒らしツールに転用でき得る外部からの書き込みには厳しいし
それがperlスクリプトと来てはなおさらだろう。
rep2みたいに何とかやってのけた例はあるけど(まああれはPHPだが)あれも
FOXに荒らし専用ツールと勘違いされて一時期えらい事になっていたし、
やるならdatから必要なIDをまとめて所得して処理を行い、
後はコピペするのみの形に整形したテキストを出力するスクリプトに留めた方が良いと思うよ。


44:nobodyさん
06/10/26 16:45:14
Perlの2ch書き込みソフトならスレ保守ツールということでVectorにある。少々古くてhana=mogeraの追加修正が必要だが。

45:nobodyさん
06/10/26 22:03:37
>コピペするのみの形に整形したテキスト
ここに質問するまではそれをベースに作っていたんですが、楽にできないものかと……。
勘違いされると確かにまずいですよね、保守ツールだったらよく見かけるんですけど……。

>Perlの2ch書き込みソフト
ありがとうございます、早速探してみます。

46:nobodyさん
06/10/27 02:03:16
use LWP::UserAgent;
use HTTP::Cookies;
use HTTP::Request::Common;
use HTTP::Headers;
print 'URI > '; chomp ( $entry = <> );
$entry =~ 'http://([^/]*)/([^/]*)/([^/]*)/([^/]*)/([0-9]*)';
($uriServer, $uriBbs, $uriKey, $uri) = ($1, $4, $5, "URLリンク($1));
print 'MESSAGE > '; chomp ( $msg = <> );
$ua = new LWP::UserAgent;
$request = POST ($uri, [
subject => '',
FROM => '',
hana => 'mogera',
submit => '書き込む',
mail => 'sage',
MESSAGE => $msg,
bbs => $uriBbs,
key => $uriKey,
time => time]);
$request -> referer($uri);
$request -> user_agent('Monazilla/1.00');
$cookie_jar = HTTP::Cookies -> new( file => 'ume.cook', autosave => 1 );
$cookie_jar -> add_cookie_header($request);
$ua -> cookie_jar($cookie_jar);
$response = $ua -> request($request);


47:nobodyさん
06/10/29 16:12:26
最近,Perlを使ったCGIで特定IPを拒否するルーチン入れてあり,
そのリストにあるIPにも関わらず書き込みをされるのですが,どんな原因が考えられますか?
例えば,自分のIPが200.10.10.10の場合,正規表現で指定して(200.*.*.*)もきちんと自分は拒否されます。
それなのに,いくつかすり抜けてくる迷惑書き込みは,一体どのようにしてるのでしょうか?
当然,直接そのIPを指定しても,効果がありません。(上の場合なら,200.10.10.10)

考えられるのは,@Perlが取得するIPアドレスの関数が偽装される。←可能なんでしょうか??
A違うCGIで直接ログファイルに書き込まれている。
というくらいしか思いつきません。
@はともかく,Aに関しては,プロバイダがHi-HOなので,こちらで細かいパーミッションの指定ができません。(たぶん)
他にも原因や対策がありますか?


48:nobodyさん
06/10/29 20:10:26
3、そのルーチンがバグっている。

というか2ならログファイルの名前変えてダミー置いとけば解決じゃないのか。

49:nobodyさん
06/10/30 01:09:22
リファラーをチェックして
他のサーバからの呼び出しを蹴る様にしたら?
正規表現でやると部分一致ですり抜けたり、リファラー自体が
偽装できるんであくまで簡易的だけどね。

my $myhome = "hURLリンク(www.vipper)

if( !$ENV{'HTTP_REFERE'} =~ /^$myhome/ ) {
#エラー処理
} else {

}


50:nobodyさん
06/10/30 03:31:49
/^\Q$myhome\E/

51:nobodyさん
06/10/30 07:32:12
>>50
訂正ありがとう。
あとさ、馬鹿なんじゃねーかと。

REFEREって・・・REFERERだよな、ごめん。

52:nobodyさん
06/10/30 21:36:17
余談だが、単語の綴りって意味で正確には
referrer
なんだけどな。

53:47
06/10/31 18:03:41
色々とアドバイスありがとうございます。
>48
ログファイル名変更が効果あるのは他のCGIで経験済みです。
最終手段だと思ってます。
それよりも,原因や他の技術的な対策などが知りたかったので。
言葉足らずですみません。

>49
試してみます。

54:nobodyさん
06/10/31 20:28:02
ZIPやGZIPではなく、LZHを展開するモジュールはありますか?

55:nobodyさん
06/10/31 21:15:35
無かったんじゃない?

56:nobodyさん
06/10/31 22:44:48
コマンド呼び出ししかないだろうな。


57:nobodyさん
06/11/08 04:25:42
文字コードshift_jisのままで、文字列中の\を置換する方法はありますか?
s/\\/?/g;
普通にこう書くと5Cを含む2バイト文字が化けてしまいます

58:nobodyさん
06/11/08 05:28:40
quotometa
\Q\E

59:nobodyさん
06/11/24 00:36:56 67lrIFIn
Perlからお気に入りのタブブラウザを起動するにはどうしますか?

60:nobodyさん
06/11/24 00:46:06
system(起動プログラム);

61:nobodyさん
06/11/24 00:50:56
>>60
できました!
ありがとうございます。ペコリ

62:nobodyさん
06/12/02 17:26:24
>>46
の間違いって
$request -> user_agent('Monazilla/1.00');
$ua -> user_agent('Monazilla/1.00');
以外にある?

このあたりだと思うんだけど
$cookie_jar = HTTP::Cookies -> new( file => 'ume.cook', autosave => 1 );
$cookie_jar -> add_cookie_header($request);
$ua -> cookie_jar($cookie_jar);




63:nobodyさん
07/01/07 08:03:18
CGIを作ろうとPerlの勉強を始め、
テキストに命令文を書き込んだのですが、
動作確認の仕方が分かりません。

書いたスクリプトを起動するにはどうすれば良いのでしょうか?

64:nobodyさん
07/01/07 09:40:28
Perlをインストールしないと確認できません

65:nobodyさん
07/01/08 10:40:10
ありがとうございます。
これからPerlのインストール方法を探しに行って来ます。

66:nobodyさん
07/01/08 13:13:18
$host = $ENV{'REMOTE_HOST'}

このようにホストを取得した場合
これを
aaa.bbb.ccc →*.bbb.ccc
のように
一部を隠す場合はどのようにしたらいいでしょうか?
ホストの取得方法を変えなければいけませんか?
ご教授くださいませ




67:nobodyさん
07/01/11 08:43:23
>>66
置換してから出力すればいいんじゃない?

68:nobodyさん
07/01/11 08:45:37
>>66
$foo =~ s/.*?\.(.*?)/\*\.\1/;
かな

69:nobodyさん
07/01/11 20:27:34
他のperiスレでも質問したのですが、スルーされてしまいました・・
マルチっぽくなってすみません。
拡張子が.plのスプリクトの動かし方を教えてください!!!
ActivePerlをインストールしたのですが、そこからどすればいいのか分かりません・・
.plファイルをダブルクリックしてもコマンドラインが一瞬でて消えるだけです・・
サーバーをレンタルしないといけないのでしょうか?
どなたか教えてください!!!

70:nobodyさん
07/01/11 22:50:22
貴様が質問した1レスあとに答え書いてあるだろメクラ

71:544
07/01/12 00:31:09
難しくて意味が分りません!!!!!
コマンドプロテクトとかじゃなくて、exeファイルみたいに直感的に扱いたいです。

消防に分かるようにお願いします!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

72:nobodyさん
07/01/12 03:40:35
でんげんコードをぬいて、自分の首にまいて、ちからを入れてひっぱる

73:nobodyさん
07/01/13 07:21:59
>>903

そこまでやりました。
そしたら勃起しちゃいました・・
次はどうすれば?


74:nobodyさん
07/01/15 22:32:53 h8620fdS
P2Pのゲームを作っていて、perl/CGIを使ってマッチングロビー、perl/cgiと
MYSQLを使って認証とプレイヤーの成績データのdbプログラムを組んでしま
す。
マッチングも認証プログラムもdbも完成するめどがたっているんですが、
ネット上に公開するとき、サーバの負荷とか良く分かりません。

たとえば、スクリプトが大きくなるけど、一度のサーバーアクセスで全て処
理できるよう、認証・マッチング・db処理のスクリプトを一つにしたほう
がいいのでしょうか。
ほんの少しサーバのアクセス回数が増えるけど、マッチングと、認証・dbを
分けてサイズを小さくし、必要な時に必要なCGIを呼び出した方がいいので
しょうか?

本当にくだらない質問ですみません。

75:nobodyさん
07/01/17 09:50:41
当方環境がWINなので、ActivePerl5.8をインストールしました。
UNIXサーバーをレンタルしてcgiで動かす場合、通常のPerl5.8は必要なのでしょうか?
ActivePerlと共存しても大丈夫なんですが?
初歩的な質問ですみませんが、教えてくださです><

76:nobodyさん
07/01/17 13:19:17
>>74
負荷を気にするならPerl CGIを選択する時点で間違い
>>75
バージョンはプログラムによる
PerlとActivePerlは共存させる必要はない

77:nobodyさん
07/02/05 22:01:41 Utbdeaaf
Encode.pmは難しいので、使っているサーバがperl5.8対応でも、jcode.plを使ってもいいでしょうか?
本当に、何が何だが分からない質問で、すみません・・・

78:nobodyさん
07/02/05 22:08:13
使えるよ。置換してるだけだから

79:77
07/02/05 22:56:56 Utbdeaaf
>>78
返答ありがとうございます。



80:nobodyさん
07/02/07 23:15:43 5L64/RF4
dat.txtファイルに




とあって、「う」だけを表示させたいのですが、どういったプログラムになるのでしょうか?

81:nobodyさん
07/02/07 23:59:35
エスパーさ〜〜ん、かも〜〜ん


82:nobodyさん
07/02/08 01:05:33
>>80
print "う";

83:nobodyさん
07/02/08 12:46:57 ySrCcQfc
別に「う」を表示させたいわけじゃない。
datファイルにある3列目の文字を表示させたい。

84:nobodyさん
07/02/08 14:04:25
open(IN, "dat.txt");
while (<IN>){
print if($.==3);
}
close(IN);


85:nobodyさん
07/02/08 14:25:54
open IN, "dat.txt" and print <IN>[3];
テストしてない

86:nobodyさん
07/02/08 15:27:19
ありがとうございます。感謝です。

87:あっこ
07/02/08 19:36:08 LIdpjyEo

URLリンク(docomo-camera-ne.jp)


URLリンク(docomo-camera-ne.jp)

ソース教えていただけませんか??

88:nobodyさん
07/02/08 19:51:42
>>87
とりあえずいくつものスレにまたがって質問して回るのを止めろ。

89:nobodyさん
07/02/08 20:48:25
CGI.pmってバグあるんですか?
バージョンは2.9です。
print $cgi->end_form;
って入力してもプリントされないんですが・・・

90:91
07/02/08 20:58:18
あ、すみません間違えました。

print $cgi->end_form;

ってやると、何故か、
<div></div></form>
ってプリントされるんです。
この<div>はなんなんでしょう?入れた覚え全くないんですが・・・

91:nobodyさん
07/02/09 07:36:17
>>87
おまえCの宿題スレにもいたけど大丈夫なのか


92:nobodyさん
07/02/10 14:46:42
CGIレスキューのショッピングバスケットプロ v6を使用しています。
このたび、アフェリエイト用のトラッキングタグを入れることになったのですが、
金額に関する変数の設定がわかりません。

cart.cgi内部の
$fee、$fee2、$SHOKEI2、$SHOKEI2、$orders

setup.cgi内部の
$j

など入れてみましたが、数値が出ません。

タグは注文の最終画面に入れ込みます。
注文IDに関してはすぐに出たのですが。。。。

エロイ方ご教授くださいませ。

93:nobodyさん
07/02/10 17:59:27
>>92
改造スレへGo

っていうか仕事を2chに持ち込むなYO

94:92
07/02/11 12:29:23
>>93

誘導有難うございます。

がんばってみて、駄目なら移動してみます。

95:nobodyさん
07/02/18 20:10:51
URLリンク(www.42ch.net)
このスクリプトで、ログファイルへのデータ追加時に
現在の年日時を取得して
2007/2/18 20:09
のような形式で行の末端に自動的に書き込むようにしたいのですが、
どの部分にどのような処理を加えれば良いでしょうか?


96:nobodyさん
07/02/24 08:30:18 vuvrJgei
最近外国人が宣伝目的で掲示板に書き込むので、なんどかしたい。
他の掲示板でも攻撃を受けているのをよく見かけます。

特徴としては、アルファベットのみで書き込むので、アルファベットのみの投稿の場合は
エラーにしたいのですが、そんなことは可能でしょうか?



97:nobodyさん
07/02/24 10:17:57
>>96
EUC-JPだけど
# $str に ASCII 以外が含まれているか判定する

if ($str =~ /[\x8E\xA1-\xFE]/) {
print "含まれている\n";
}
引用元
URLリンク(www.din.or.jp)


98:nobodyさん
07/02/26 13:07:30 bWsttIN4
改造です。
先頭行でなく最終行を取得しないとマズいことに気づいたんですが
どうすればいいでしょうか。
---------
if ($in{'ori_ie_id'} eq "admin"){
$bbs1_log_file = "./member/admin/bbs".$in{'bbs_num'}."_log.cgi";
}else{
$bbs1_log_file = "./member/$in{'ori_ie_id'}/bbs1_log.cgi";
}
open(IN,"$bbs1_log_file") || &error("Open Error : $bbs1_log_file");
# 先頭行を取得
$total_counter = <IN>;
($total_counter,$all_total_counter)= split(/<>/, $total_counter);
$top = <IN>;
local($b_num,$b_name,$b_date,$b_res,$b_count,$b_com)= split(/<>/, $top);
--------------------------

99:nobodyさん
07/02/26 16:00:02
よし、エスパー3級の俺が答えてやろう。

複数行の入力を取った場合配列になる。

@lines = <INPUT>;

この場合に最後の要素はこう所得できる。

$lastline = $lines[-1];

もしくはこう書いても良いだろう。

$lastline = pop(@lines);

これらの違いについてはマニュアルを嫁。

分かったら次からはエスパーじゃなくても分かる言葉で書くように。

100:nobodyさん
07/03/07 21:52:50
なんか、トロイの木馬が検出されましたと出た。

101:nobodyさん
07/03/22 13:03:52 RsfMZKm1
$value = '%e6%97%a5%e6%9c%ac%e8%aa%9e';
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
として走らせたところ、スクリプトをウェブサーバを通して呼んだときと
同じサーバのコマンドラインから呼んだときで
$valueの中が変わってきてしまいます。

linuxコマンドライン:ツづ可づ卍づアツつイ
linux上ウェブサーバ:にほんご

どうしてこうなっちゃうんでしょうか・・
コマンドラインから呼んだときでも"にほんご"とする方法はありますか?


102:nobodyさん
07/03/22 13:08:13
そのコンソールは日本語表示に対応してますか

103:101
07/03/22 14:06:12
ごめんなさいよくわからないです。
linuxのサーバへはwindows上のtelnetでつないでまして、
さきほど、簡単にprintで"にほんご"と表示させるだけ、
もしくはファイルとして保存するだけのスクリプトを
スクリプト自体の文字コードをいろいろ変えて走らせてみたところ、
どれも漢字混じりでぐちゃぐちゃっとなり、まともに出ませんでした。
これって対応してないって事ですかね。。

104:nobodyさん
07/03/23 12:35:39
せめてTeraterm使ってください

105:nobodyさん
07/03/26 05:21:22
表示文字コードを変更できないプロンプトってあるの?

106:nobodyさん
07/04/18 00:42:41 2fOrfnuV
#ディレクトリを開く
print "変換するフォルダのパスを入力してください\n";
$folder_path = <STDIN>;
chomp($folder_path); #改行コード削除
opendir(DIR, "$folder_path");
@file = readdir(DIR);
closedir(DIR);

#ファイル名を調べる
foreach (@file)
{
#htmlファイルなら処理
if( $_ =~ /.html/ ){
print "$1\n"; ##ここは呼ばれるが$1が空##
#ファイルを開く
open(F, "+< $_.$1" );
#ファイル1行読み込む
while($line = <F>){
#iso-8859-1をShift_JISに変換
if( $line =~ s/charset=iso-8859-1/charset=Shift_JIS/ ){
print(F "$line");
}
}
close(F);
}
}

htmlファイルの文字コードをかえるコードを書きたいのですが、うまくいきません。
どこが、間違ってるのでしょうか?

107:nobodyさん
07/04/18 01:10:01
まずエラーメッセージを書こうぜ

108:106
07/04/18 01:17:05 2fOrfnuV
#ディレクトリを開く
print "変換するフォルダのパスを入力してください\n";
$folder_path = <STDIN>;
chomp($folder_path); #改行コード削除
opendir(DIR, "$folder_path");
@file = readdir(DIR);
closedir(DIR);
#ファイル名を調べる
foreach (@file)
{
#htmlファイルなら処理
if( $_ =~ /([A-Za-z0-9_]*\.html)/ ){
print (STDOUT "$1");
#ファイルを開く
if( !open(F, "+< $floder_path.$1" ) ){
printf(STDOUT "HTML読み込み失敗\n");
}
#ファイル1行読み込む
while($line = <F>){
print(STDOUT "変換\n");
#iso-8859-1をShift_JISに変換
if( $line =~ s/charset=iso-8859-1/charset=Shift_JIS/ ){
print(F "$line");
}
}
close(F);
}
}
としたところ、
ファイル名 HTML読み込み失敗
と表示されます。

109:nobodyさん
07/04/18 01:22:04
じゃ動いてんじゃん

110:106
07/04/18 01:23:05 2fOrfnuV
ループにはいるまえに、カレントディレクトリをへんこうし
#カレントディレクトリ変更
chdir("$folder_path");

open(F, "+< $floder_path.$1" )を
open(F, "+< $1" )とすると置換の部分は実行できました。
しかし、置換前の文字が残ってしまいます


111:nobodyさん
07/04/18 01:59:13
>置換の部分は実行できました。
>しかし、置換前の文字が残ってしまいます

バカじゃないんだから実行前の入力文字列と実行後の出力文字列くらい出せや

112:nobodyさん
07/04/18 02:06:45
香ばしいなぁw 俺にもあったわこんな時代www

>>108
ファイル変換系の処理は「読み込むファイルに書き戻す」よりも
「読み込みつつ別のファイルに書き出す」ようにした方がいい。
書き出しが終わった後で削除&リネームすればいいだけだし、
途中で処理が止まっても安全。

あと微妙に板違いだから次からはプログラム板行けなw

113:106
07/04/18 02:57:11 2fOrfnuV
別ファイルに書き出しでやってみます
ありがとうございました。
つぎからはプログラム板逝きます


114:nobodyさん
07/04/18 03:45:43
島根県のみなさん、パチンコをするなら、

  優良パチンコ店 エ○トワン  

に行こう! 遠隔(※1)をやっていないパチンコ店は「エイ○ワン」だけ!
違法ロム(※2)を使っていないパチンコ店も「エイト○ン」だけ!
○イトワンでは、遠隔等が可能な設備は入れていません。 ロムも、警察がチェックしやすくしています。

詳しい方はご存知の通り、どんなにパチンコの遊戯人口が変動しても、その市場規模は変わりません(※3)。
要するに、客が減っても、残った客から絞り盗る量を増やして調整しているのです。
しかし、何故それが可能なのか?…ご理解頂けると思いますが、9割以上の店が確実に遠隔等を行ってます。
1万店以上のパチンコ店の中で、遠隔も違法ロムも確実にやってないのは「○イトワン」ただ1店です!

※1…遠隔とは
 「お、あの客は新顔だな。勝たせて味を占めさせるか。遠隔操作で設定変更しよ」
 「客が減ってきたな。ま、設定を絞めて(違法)、1人あたりから搾る量を増やせばいいか」
 「あのオヤジ負け続けてるからそろそろ辞めるかもな。今日は勝たせてやるか」

※2…違法ロムとは
 「うちのアタリ確率は、もちろん他と同じ『○○○分の1』ですよ!(ロムいじってるからウソだけど)」

※3       市場規模   遊戯人口
 平成06年 30兆4,780億円 2,930万人
 平成08年 30兆0,630億円 2,760万人
 平成10年 28兆0,570億円 1,980万人
 平成12年 28兆6,970億円 2,020万人
 平成14年 29兆2,250億円 2,170万人
 平成16年 29兆4,860億円 1,790万人

115:nobodyさん
07/04/24 12:15:29
perlでそれなりに大きなCGIを作ることになったのですが
いろいろな関数をまとめた物を作るときに
それらを単純にまとめただけの外部plファイルを
requireして使いまわすよりも、パッケージ化や
モジュール化して使ったほうが良いと
聞いたのですが、何故でしょうか


116:nobodyさん
07/04/24 14:22:11
パッケージ化することによって、関数(メソッド)や変数(属性)の名前衝突を避けることができ、
モジュールをつかいまわす場合に有効。


117:nobodyさん
07/04/24 14:37:40 RJoF4cmJ
Windowsマシンで、Apache + ActivePerlを使用して、ローカルでPerlの勉強をしているんですが、
Perlのコードにエラーがあると、
use Strict; を記述しても、500 Internal Server Errorになってしまいます。
(どういうエラーが出たか教えてくれない)
エラーを表示させるにはどうしたらいいんでしょうか。

各バージョンは、
Perl v5.8.8
Apache 2.0.59
です。

118:nobodyさん
07/04/24 17:10:54
>>116
なるほど。変数名の衝突を気にしなくてもいいのは便利ですね
これからパッケージの勉強からしてみます
ありがとうございました


119:nobodyさん
07/04/24 17:23:24
>>117
スクリプトの頭に

BEGIN {print "Content-Type: text/plain\n\n"; $| = 1; open(STDERR, '>&STDOUT')}

とでも書いとけ

120:nobodyさん
07/04/25 02:24:17 lSJlnLTR
>>117
モジュールつかっとけ
use CGI::Carp qw(fatalsToBrowser);


URLリンク(perldoc.jp)


121:nobodyさん
07/04/25 20:53:26
[ディレクトリ構成]
xxx/
 index.html
 
 data/
  post.dat

cgi-bin/
 xxx/
  post.cgi

と置いてあります。このとき
#!C:/Perl/bin/perl
open(OUT,">> ../../xxx/data/post.dat");
print OUT "$FORM{'posturl'}\n";
close(OUT);

と post.cgi に記述してみたのですが、うまく
post.dat のほうに $FORM{'posturl'} の内容が書き込めていないようでした。
パスの設定ミスだとは思うのですが…

環境は,windows xp sp2 上 でApache/2.0.45 を使用しております。
どうぞよろしくお願い致します m(__)m

122:nobodyさん
07/04/25 22:02:43
それだけじゃさっぱり

123:nobodyさん
07/04/25 22:56:34
自己解決スマソ。
open(OUT,">> ../../htdocs/xxx/data/post.dat");

とすれば良かったみたいです。
htdocs/
- xxx/index.html
- xxx/data/post.dat

cgi-bin/xxx/post.cgi

webプログラムってプログラム以外の部分がややこしい…

124:nobodyさん
07/04/26 16:20:32 Xsmaee58
■ Perl言語 ■ 何でも質問コーナー ■
URLリンク(mixi.jp)
Perlに関すること、cgiに関すること
なんでも質問できるコーナーです(たとえばApacheとかでもOKとします!)
(Web系であればOK)

ルール:
Google検索で調べてわかるようなことでも質問してもOKです
(初心者のうちは、どの情報を取捨選択したらイイのかわからないと思うので)
回答してくださるかたは、暖かく質問者を迎えてやってください
o(^^o) (o^^)o

125:nobodyさん
07/05/01 16:23:34
PerlでファイルアップロードCGIを作ろうとしています。
「1. ファイルを選ぶ 2. 確認画面 3. 送信完了」と動作させようとして
躓きました。2. 確認画面を表示しない場合はうまくいくのですが、
確認画面を間に挟むと空のファイルがアップロードされてしまいます。

1 から直接 3 にいくプログラムは次のように組んであります。
 1. CGI.pmを使ってfilefield('file');でファイル選択させる。
 3. $fh = upload('file'); でファイルの情報を得て、
   while(read...){print...} でファイルを書き込む。

2 をはさむときは、param('fh', $fh); print hidden('fh');
として情報を保存しました。

たぶん、上の方法では必要な情報を保存しきれていないのだと
思うのですが、どうすればよいかわかりません。よろしくお願いします。

126:nobodyさん
07/05/03 02:37:57
無理

127:初心スレ861(481)
07/05/25 22:03:25 1LPPhSSe
質問です

if(a=1){
if(b=1){
print "○○○"
}
}
というようにIFの中でIFは可能ですか?

128:nobodyさん
07/05/25 22:17:31
歴史にIFなど無いのだよ

129:nobodyさん
07/05/25 23:10:03
>>127
なぜ不可能だと思うんですか?

130:nobodyさん
07/05/25 23:29:35
>>129
うごいていたプログラムのIFの中にIF入れたら壊れたからです
何か他にげんいんがあるのかお

131:nobodyさん
07/05/25 23:47:26
お前のプログラム知識だよ

132:nobodyさん
07/05/26 05:47:48
if(a=1)

なんか懐かしいなw
こういうの見たの15年ぶりだよ。

133:nobodyさん
07/05/26 23:39:33
perl 関連スレッドに機会があったらいつか書こうと思って
たんだが、機会が無いのでここに独り言として書く。

[初心者のための perldoc ]
perldoc は、本を開かなくともいつでも開くことが出来る手軽なリファレンスだ。

ターミナルで「perldoc perl」と打ち込むだけで概要が出てくる。SYNOPSIS に
リストがつらつら書かれているがそれぞれ perldoc で呼び出すことができる
1. とりあえず基礎の基礎を読んでみたいなら「perldoc perlintro」
 ( for, while, if などもここを最初に )
 array of array などなら「perldoc perllol」
 正規表現なら、「perldoc perlre」
 スイッチ(所謂コマンドラインオプション)なら「perldoc perlrun」
 etc...
 これらの文章中 see perlxxxx.... と書かれていたら素直に
 「perldoc perlxxxx」すればよい。
2. 個々の関数について調べたいなら
 「perldoc -f reverse」
 などと f オプションを付けて実行する。
3. 取り敢えず、なんか判らんって時。例えば「配列」
 「perldoc -q array」
 faq の中から array を含む文章拾ってくれる。但し question のみ。
4. 個々の説明文 pod にアクセスしたい時
 「perldoc Tie::File」
 「perldoc strict」
5. 「perldoc -h」すれば、perldoc の使い方の説明が出てくる。
perldoc の中身には例文も出てくるので、英語が判らんでも 2ch に
相談するまえに見てみることをお勧めする。
どーしても、という方には web 上にはそれなりに翻訳された perldoc が
あるのでターミナルで「perldoc perl」でリストの中から目星を付け、
そのファイル名で検索するのも良い。
(但し最新版ではない事がほとんどなので注意が必要)

134:nobodyさん
07/05/29 00:59:04 +KVPsKMz
質問です。

#!/usr/bin/perl

open (IN,"< http://あqwせdrftgyふじこ/test.dat") ;
@LINES = <IN>;
close(IN);

print "Content-type: text/html\n\n";
print "<html><head></head><body>";

foreach(@LINES){
 print $_ . "\n";
}
 print "</body></html>";
}

こんな感じでhttpから始まるURLをうって
ファイルを開いて処理したいんですがどうやら読めないっぽいです。

open (IN,"test.dat") ;
に変えると動いてくれるのですが、、、

仕様上不可能なんでしょうか?


135:nobodyさん
07/05/29 01:19:04
>>134
allow_url_fopen が効いてる PHP みたいな、裏でどうにかしてくれる仕掛けはありません。
LWP使えば外部のファイル自体は取得できるけど。

136:nobodyさん
07/05/29 02:04:54 +KVPsKMz
>>135
こんな時間にレスあり ><

use LWP::Simple;
$a = get("http://くぁwせdrfgyふじこ/test.dat");

で取得できました。ありがとうございました。

これで気持ちよく眠れます。

137:nobodyさん
07/06/03 00:26:01
久しぶりにperlでcgi作ろうかと思うんだけど、今はutf8で書くのが一般意的?

138:nobodyさん
07/06/03 13:53:14
なんでもおk

139:nobodyさん
07/06/05 13:52:29
ブラウザで操作をして
自サーバ内のファイルを別サーバへコピーしたいんですが(セキュアFTPサーバ)
Net::FTP
を使って、セキュアなFTPサーバへ接続は出来ますか?
もしくは、可能な別モジュールってありますか?

140:nobodyさん
07/06/07 14:40:32 TOlQmlY8
すいません。
定期的にフォーム部品の個数が変わるフォームで、
1コでも未記入があった場合にエラーが出したいんです。

radio1
radio2
radio3
textarea1
textarea2
radio4



その時によって、フォーム部品の数が増えたり減ったりします。
汎用的に未記入があった時にエラーを返すにはどうしたらいいでしょう?

141:nobodyさん
07/06/07 15:58:44
フォームにフィールド一覧をhiddenで入れておくとか

142:nobodyさん
07/06/07 16:38:40
それはだめだろw

143:nobodyさん
07/06/07 17:31:11
エンティティボディに=&か=$があったら落とせばいい

144:nobodyさん
07/06/07 17:33:24
それでは駄目

仕様上は未入力のフィールドは送信しなくてもいいことになってるんで

145:nobodyさん
07/06/07 17:51:47
そんな細やかなもんなら全部やるしか無いでしょ
どのみちレングスや内容を全部調べるんだろうし

146:nobodyさん
07/06/08 11:15:29
>>144
inputがあるのに未入力を検出したいってんなら>>143で問題ないと思うのだが。

>仕様上は未入力のフィールドは送信しなくてもいいことになってるんで
って何の仕様の話?

147:nobodyさん
07/06/08 12:03:20
>>146
HTML 4.01

148:140
07/06/08 13:54:24 i/tb2omn
144は私ではないです。

みなさんありがとうございます。
>143さんの方法が良さそうですね。
ところで、エンティティボディって何の事でしょう・・・・?

すいません、ぐぐってみます;

149:nobodyさん
07/06/08 17:32:56 rRYhakqE
お世話になっております。

今現在Perlを使用したCGIを作成していて困った事があるので相談させていただきます。

HTML側が
----------------
<form method="POST" ENCTYPE="multipart/form-data" action="edit_completion.cgi">
<input type="file" name="TENSOU">

----------------
としていて受け取るCGI側を
----------------

my $cgi = new CGI;
my $image = $cgi->param('TENSOU');
my $file_name="./test.jpg";
my $buffer;
open(OUT, ">$file_name") or die(qq(Can't open "$file_name".));
binmode OUT;
while (read($image, $buffer, 1024)) {
print OUT $buffer;
}
close OUT;

----------------
としているのですがうまく受け取れません、、、
上記perlは昔自分が書いたものを参考にしたのですが
ナニを参考にしたのか覚えていません。

どこか使用方法が載っているURL等お教えいただけないでしょうか?

150:nobodyさん
07/06/09 13:37:43
URLリンク(www.harukaze.net)

ここを参考にしたら?

151:nobodyさん
07/06/10 18:01:18
Perlを勉強し始めて一ヶ月ぐらいかな・・・
仕事の傍らちょこちょこやってて
今「続・初めてのPerl」のオブジェクト指向とかリファレンスのトコ
そこ入ったらいきなりクラスとかメソッドとか初出の単語が連発してきてかなり混乱
なかなか頭に入ってこなくて泣きそう(つωと)


152:nobodyさん
07/06/10 20:07:23
>>151
「続・初めて」
は題名に反して、「リャマ、ラクダ、CookBook、Best Practice、etc.」を
読んだ後に読む本だぞ。

153:nobodyさん
07/06/11 00:16:13
>>152
レスありがとうございます
う、そうなんですか・・・もっと吟味すればよかった(・ω・`)
リャマは読み終わりましたのでラクダ本検討してみます
しかし高い・・・

後、やっぱりUnix環境整えた方がいいですよね
今までWindowsのみでやってきたので、Unixの事はチンプンカンプンですけど
WindowsみたいにOSのパッケージを買えばいいのかな・・・調べてみようと思います
ありがとうございました


154:nobodyさん
07/06/11 01:57:28
ム板「質問箱 30」の704 からの流れも参考にしとけ。

後半は、マカーなので分らんw
が、Windows だけで完結してそうな人も多いし、Cygwin
辺りで慣れるだけじゃダメなのかなあ。
もちろん業務とかが絡む人は別だけど。

155:nobodyさん
07/06/11 02:16:08
「原題」ってなんだったっけ、ってサイトに行ってみたら
URLリンク(www.oreilly.co.jp)
絶版になったのか、、、

156:nobodyさん
07/06/11 23:50:11 kL3eCwRQ
Perl初心者です。

スクリプトの文法チェックをしたいのですがどなたかいいツール知りませんか?

検索してみたのですがなかなかいいのが見つからなくて。

157:nobodyさん
07/06/12 02:23:49
文法チェックなら perl -c でやりゃいいじゃん。
もう少し厳しくみるなら perl -wc

perldoc perlrun くらいはしといてくれ。


158:nobodyさん
07/06/12 12:32:30 0KbPnFiH
>>157

ありがとう、早速試してみます。

159:nobodyさん
07/06/12 12:43:31
>>157
ここは超初心者用だ
お前のような排他的な奴は出て行け

160:nobodyさん
07/06/12 14:08:36
>>159
排他って言葉の意味わかってるのか?


161:nobodyさん
07/06/12 16:16:31 0KbPnFiH
ついでにおすすめのエディタもお聞きしたいのですが?

162:nobodyさん
07/06/12 16:55:27
>>161
windows?
秀丸とかEmEditor、金出したくなければ
xyzzyあたり。


163:nobodyさん
07/06/12 17:19:53 0KbPnFiH
>>162

windowsです。

普段は秀丸を利用しています。
秀丸はHTMLは書きやすいのですがPerlは微妙です。

Perlに特化した感じのエディタがないかいろいろ検索中ですがなかなかいいのが見つからなくて。


164:nobodyさん
07/06/12 18:56:13
xyzzyとか、unixで主に使われるエディタなら
perl用のモードがあるよ
Emacsとかvimとか。
windows用もあるけど、初心者お断り的な
ところがあるから、慣れるまでは
大変かも。

希望の機能とかはあるの?


165:nobodyさん
07/06/12 21:45:38 0KbPnFiH
>>164

やっぱ色分けはわかりやすいほうがいいですね。
秀丸はヒアドキュメントの部分がわかりづらくて。

あとは文法チェックやプレビュー機能なんかがあればうれしいですね。


開発環境にこだわるのはある程度知識身につけてからのほうがいいのでしょうか…
なんせまだPerl勉強して1ヶ月もたってないもので…

166:nobodyさん
07/06/12 23:26:18
PerlEditor ただしUTF-8非対応
Eclipse + PerlPlugin

167:nobodyさん
07/06/12 23:37:16
>>165
つーかまずコード書こうや
道具選びはそれからでも遅くない

168:nobodyさん
07/06/13 02:12:53
>>165
最初はそんなにでかいコード書くこともないだろうから、
それこそメモ帳でなきゃ適当なエディタでいいと思うけどね。

とりあえずこいつは構文チェックをしてくれるらしい

URLリンク(activestate.com)

体験版はあるみたいだけど基本的に金だして買わなきゃいけないし、
ドキュメントは英語だけ。

ところでプレビュー機能ってなに? CGIでも作るの?


169:nobodyさん
07/06/13 12:39:29 Ij6cMTyX
とりあえずエディタはこれかPerlEditor落ち着こうと思います。
URLリンク(www.forest.impress.co.jp)


PerlはCGI作るために勉強しはじめました。
とりあえず10日で覚えるPerl/CGIという入門書を読んで勉強中です。

170:nobodyさん
07/06/13 18:17:02
私は一晩で学ぶSQLを買いました。最終的に3年かかりました。

171:nobodyさん
07/06/14 13:02:46
ワロタ

172:nobodyさん
07/06/14 19:02:31 MrJTWOJA
CGIで質問フォームを作ってそれが完了したと同時にメールが送られるようにしてるんだけど、
一定文字数を越えると文字化けしてしまう。。
誰かこの文字化けが何系の文字コードか分かる方います??

$"$($($($($($($($($($($($($($($($($($($($($($($($($($($($($($($($($($($($3$3$G2~9T$*$*$*$*$*$*$*$*$*$*$*$*$

173:nobodyさん
07/06/14 19:21:03
別スレに書き込みますすいません。

174:nobodyさん
07/06/15 18:43:38 3CYhNC9F
Perlを勉強するうえで読んでおいたほうがいい書籍ってなんですか?

175:nobodyさん
07/06/15 19:41:34
>>174
1. ああっ女神さまっ 1〜34巻
2. 逮捕しちゃうぞ 文庫版1〜4巻
3. 大人のCGIスクリプト

176:nobodyさん
07/06/15 20:12:22
女神はクソアニメだろ…

177:nobodyさん
07/06/15 20:55:45
銀英伝全巻(余裕があるなら、アニメ版全巻も)

178:nobodyさん
07/06/15 21:51:09
それが僕には楽しかったから(小学館プロダクション)
ニーチェ入門 (筑摩書房)
本当の潜水艦の戦い方 (光人社)

179:nobodyさん
07/06/15 22:38:03 3CYhNC9F
まじめに教えてくださいよ

180:nobodyさん
07/06/15 22:48:57
あいまい3cm

181:nobodyさん
07/06/15 22:51:37
答えていますとも。

>SF を読むこと。
>だじゃれや言葉あそびへの理解を深めること。
>母国語できちんと文が書けるようになること。
>多くのハッカーは「おたく」というレッテルを受け入れています。
>それは自分が普通の社会的期待から自由だと宣言する方法の一つなのです。
URLリンク(cruel.org)

182:nobodyさん
07/06/16 21:27:44 0wRsaGP2
Perl勉強しただけでハッカーになれるんですか?

183:nobodyさん
07/06/17 08:54:43
perlしか知らなくてもハッカーになれるヤツはなるし
全言語覚えてもハッカーになれないヤツはなれない

要は応用力の問題

184:nobodyさん
07/06/20 21:35:54
よろしければご教示願います。

PerlのCGIからEXEを叩くだけのSYSTEM関数を呼ぼうとしているのですが
処理自体はバックグラウンドでやらせて、制御は画面に戻したいので
「res = SYSTEM(1, @args)」で実行しようとすると、-1が戻されてしまいます。
「res = SYSTEM(@args)」でやれば問題なく動くのですが…

第一引数に1を設定した場合は実行不可になる、といったような
事例はあるのでしょうか?
(検索キー「SYSTEM」では該当が多すぎて…)

185:nobodyさん
07/06/20 22:20:47
>>184
つかそもそもsystem関数の使い方わかってないだろ

「perl system」でググるくらいの検索能力は身につけようぜ兄弟

186:nobodyさん
07/06/20 22:35:16
win 用の特別な記法があるのかと思ってググりまくった俺、マカー。orz...

187:nobodyさん
07/06/20 23:12:17
>>185
いやあの・・・すいません。
「@args」と書いてあるところが、叩かせようとしているEXEの
引数つきコマンドラインです。

system関数の記事ならいくつもHITしますが、第一引数に1をセット
しての使い方についての記述はほとんどなかったので…
(この書き方自体がwin専用らしいですが)

188:nobodyさん
07/06/21 00:30:05
>>187
最初に「Windows+ActivePerlの環境です」とかくらいは書いた方が良いと思うんだ。
@argsの内容とかも。argsなんて名前の配列にコマンドまで入ってるなんてあまり想像しない。

で、たぶん-1返してるのは@argsの中のプログラム側だからそっちを調べないと無理かも。

189:nobodyさん
07/06/26 18:01:07 pgSc3qoH
perl、cgiを独学で勉強しているが理解できない;;
10日で覚える〜の本を参考書にしてるけど10日じゃ理解できないYO・・
学習能力ねぇから難しいなぁw

190:nobodyさん
07/06/26 23:19:15
この手のは学習能力というより意欲の問題。
若干相性はあるがね。

191:nobodyさん
07/06/26 23:32:33
人間必要に駆られないと覚えないから。

1. 何を作りたいか決める
2. とにかく作り始める
3. 詰まったら実現方法を参考書で調べる
4. 2に戻る

あとメモを取った方が効率が上がる。特殊変数全部メモるとか。
それさえあれば何時でも何処でも(少なくとも自分だけは)必ず何でも書けるメモを作る。

192:nobodyさん
07/06/26 23:38:09
「10日で覚える〜」を買って本当に10日で習得したって話は聞かないから
>>189はあんまり気にしなくていいよ。

>>191
必要に駆られると覚えるの早いよなあ。納期とか。

193:189
07/06/27 11:43:36 qSRVuZRU
関数が覚えられないからメモをしっかりとってやってみます^^;
ゲームとか掲示板を思い通りに作りたいのでまずは基礎からって
感じだと思ったので、とにかく習うより慣れるかな〜

194:189
07/06/28 17:14:56 /27P2PeN
質問なんですがよろしくです
#! c:/perl/bin/perl

open(IN, "+<./count.dat");
$count = <IN>;
++$count;
seek(IN,0,0);
print IN $count;
close(IN);
こんなアクセスカウンターがあったとして./count.datの中に
12が書き込まれていたら次にアクセスしたら13になりますよね?
seek関数でファイルの先頭に持ってきているのはわかるんだけど
先頭にそのまま持ってきたら1312にならない理由を教えてほしいっす><

195:nobodyさん
07/06/28 17:44:35
ファイルにはインサートモードは無い

196:189
07/06/28 17:53:34 /27P2PeN
インサートモードって何ですか?
seek(IN,0,0);
の、部分だけ消してアクセスすると1213になるけど
seek(IN,0,0);
が、あることにより上書きになるの?

197:nobodyさん
07/06/28 17:58:37
常に上書きだ
書き込みポイント(シーク位置)が読んだことにより後ろになってるだけ
末尾で上書きすれば追加と同じだろう

メモリでも挿入ってのは、データを後ろにずらしてから上書きしてるんだよ。

198:189
07/06/28 18:16:42 /27P2PeN
???(´・ω・`)
seek(IN,0,0); は、
常に上書きって覚えとけば問題ないのかな?
ありがとうございますです。

199:nobodyさん
07/06/28 18:26:31
あーもういいやそれで

200:nobodyさん
07/06/30 14:41:50 zANvV/vQ
こういう範囲指定を → 4.43.96.0/24
このように変換   → 4.43.96.0-4.43.96.255
したいのですが、良い方法を教えてください。

201:nobodyさん
07/06/30 15:21:36
拡大解釈して、「あるIPアドレスがあるネットマスク内にあるか否か」
ってスクリプトなら。

my $netmask = q{4.43.96.0/24} ;
my $ip = q{4.43.96.0} ; # <= ここにテストするIPアドレスをセット
my ( $org_ip, $byte ) = split m{/}, $netmask ;
my $packed_one = unpack qq{B$byte}, pack 'C4', split ( /\./, $ip ) ;
my $packed_two = unpack qq{B$byte}, pack 'C4', split ( /\./, $org_ip ) ;

if ( $packed_one eq $packed_two ){ print q{in} . qq{\n} ; }


こんな感じ?と素人が答えてみるテスト。



202:nobodyさん
07/06/30 15:54:22
>>201
正直Perlは良く分からないのですが、コピペして結果がでました。
どうもありがとうございます。ペコリ

203:質問
07/06/30 16:27:58 6uCjWfRX
配列の値をリファレンスを使って、サブルーチンへ渡す方法についての質問です。

下記のような簡単な物を作って、配列のリファレンスがサブルーチン側へ渡されていることは
わかりました。($alldata_refと$getdata_refが同じ)
が、サブルーチンを使っての配列の値の参照がなぜかできません。
いろんなサイトをみても問題はないようですが、わかる方教えてください。

@alldata=(1,2,3,4,5);
$alldata_ref=\@alldata;
print "$alldata_ref\n";
foreach (@$alldata_ref){
print "$_";
}
print "\n";


&COUNT8(\@alldata);

sub COUNT8{
my $getdata_ref="@_";
print "$getdata_ref\n";
foreach (@$getdata_ref){
print "$_";
}
print "\n";

204:nobodyさん
07/06/30 16:43:21
my $getdata_ref=shift;

205:203
07/06/30 16:46:10
うほっ。
よくわかりませんが、できました。
ちょっとshift勉強しに公園のトイレ前に行きます。

206:nobodyさん
07/06/30 16:53:48
便乗で質問させてください

>>203って、サブルーチンの中で引数を取得する時に
ダブルクォーテーションで囲った事が原因ですよね?

207:nobodyさん
07/06/30 17:11:28
printで表示される物と、内部的な扱いは違う。
ついでに、ダブルクオートしなかったら要素数が返るだけと思う。
shift@_なり、$_[0]なりで、ちゃんとリファレンスを取得することが大事。

208:nobodyさん
07/06/30 20:16:18
ついでに、ダブルクオートしなかったら、COUNT8に渡された
リスト(アレイリファレンス1個のリスト)がスカラーコンテ
キストで評価されて結果は1。

209:nobodyさん
07/07/01 06:34:28
my($getdata_ref)=@_;
が推奨されています。
当たり前ですが複数なら以下です。
my($abc,$def,$ghi)=@_;

またPerlでは@arrayの評価は左辺値で決まるので、ダブルクオートしなければ
必ず要素数が返ると信じるのは誤動作の元です。
$#array+1を使うか、scalar(@array)と明示する方法がオススメです。

さらにfor文をこのように書く人が大勢居ますが、
for(,my $i=0; $i<@array; $i++)
非常に遅いので予め@arrayの要素数をスカラーに移して使いましょう。

210:nobodyさん
07/07/03 16:41:35 Fn19fg5B
>>209
板違い。
Perl板でやれ。

211:nobodyさん
07/07/03 19:22:53
perl板って何処にあるんだよ。

212:nobodyさん
07/07/04 09:06:32
URLリンク(pc11.2ch.net)

213:nobodyさん
07/07/07 14:31:13 MhnKrAyD
ActivePerlでPerl始めたんだけど、エクセルのデータかCSVから
それぞれの行、列から数値を取り出したいんですけど、
どこかに良いサンプルか参考になるサイトはないですか?

214:nobodyさん
07/07/07 14:50:58
>>213
ここはwebprog板なのでキミの質問は板違いである。

215:nobodyさん
07/07/08 06:04:57
べつに板は違わないけど
Perl CSVやPerl Excelで検索すりゃ一瞬で出るものを書かれると何かが減退する

216:213
07/07/09 22:38:35 6iXDsaKo
Webで検索しても分らないから質問したんですが・・・orz

217:nobodyさん
07/07/10 10:55:28
減退しようぜ

218:nobodyさん
07/07/10 11:13:10
まああるていどやって、ここがわからないという質問だと答える気にもなるけど
お前らの答えは信用ならんから、サンプルやサイトを教えてくれと言われたら
こたえる気はなくすわな

219:nobodyさん
07/07/10 11:49:08
「IBMの言う通りにしたけど出来なかった(゚Д゚)」
と言われたなら、へー出来ないんだーという情報価値も少しある。
出来たらぶっ飛ばすけどね。

今ちょっと見たらOffice2000がどのライブラリも対応してる感じだけど、
バージョンの説明も無いし、なんで検索のお手伝いをしないといけないんだって。

220:nobodyさん
07/07/10 13:28:27
>>216
Google 使って「Perl CSV」で検索すると、先頭に出てくるのだが。
一体、何がどう分からないのかな?

221:nobodyさん
07/07/10 18:20:33
Mac OS X(10.3.9)を使ってるんですが、perlが5.8.1です。
アップグレードってどうやるんですか?5.8.6にしたいんですが(参考にしてる本が5.8.6だから)

222:nobodyさん
07/07/11 09:43:51
>>216
ほれ。チョーわかりやすいサンプルを書いてやったぜ。

#! /usr/bin/env perl
$csv = <<"_CSV_";
activePerlで,Perl,始めたんだけど、,エクセルの,データか,CSVから,
それぞれの,行、列から,数値を,取り出したいんですけど、,
どこかに,良いサンプルか,参考になる,サイトは,ないですか?
_CSV_
grep{push(@d2a,[split(/,/)])}split(/\r?\n/,$csv); # 格納
for(@d2a){print for(@$_);print "\n";} # 表示


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

4276日前に更新/307 KB
担当:undef