Perl コーディング初心者質問コーナー Part35
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
04/05/26 16:48ID:kkhhiYmo【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
「コマンドの意味がわかんない」とかはマニュアル見ましょう。
回答者さんは何でも屋じゃありません。
1: 自分はこう言う事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。
最低でも1と3が無いと誰も答えられないよ。
ソース貼る時は、全角スペースでインデント忘れずに。
良い回答は良い質問から。一緒に勉強しましょう。
過去ログやお勧めサイトは >>2-10
0071nobodyさん
04/05/30 02:04ID:???それとも粘着の意味を取り違えてるの?
0072nobodyさん
04/05/30 02:08ID:???痛すぎる
自分が粘着してることに気づいてない粘着は一番嫌われるよ。
まぁ、リアルでそうなんだろうが
0075nobodyさん
04/05/30 02:12ID:???0076nobodyさん
04/05/30 02:13ID:???まぁ餅付け
いや、お前が一番痛いよ・・・
メル欄引っ掛けとかキモ杉
0077nobodyさん
04/05/30 02:14ID:???>>75は誰か引っかかると思って書いてるんだよ
メル欄晒しはもう少し待ってやるべきだった。
今>>75ないてるぞ・・・
俺知らない
0079nobodyさん
04/05/30 02:15ID:???perlを勉強中です。
CGI呼出し時にurlの引数に配列を直接入れる事は可能でしょうか?
PHPでは出来ると聞いて、perlでやってみてるのですが上手くいきません。
具体的には、以下の様にしました。
hoge.cgi?huga%5B%5D=1&huga%5B%5D=2&huga%5B%5D=3
また、この方法が無理な場合は、$huga=1,2,3で代入して送って
受け取ったCGIで@huga=(1,2,3)で代入したいのですが、urlの
; / ? : @ & = + $ ,
以上は特別な意味を持つようなのですが、
, を %2Cにエンコードして送信すれば問題有りませんでしょうか?
おまえらにタイムリーな話題ですよ
http://pc5.2ch.net/test/read.cgi/php/1078568723/l50
0080nobodyさん
04/05/30 02:16ID:???0084nobodyさん
04/05/30 02:23ID:???典型的な厨房だな。
宿題して寝ろよ
0085nobodyさん
04/05/30 02:25ID:???checkboxを学べ
それは板違いだ
お前ら板違いの話題で良くここまで盛り上がれるな。
0088nobodyさん
04/05/30 02:29ID:???0089nobodyさん
04/05/30 02:37ID:???w=必死
009362
04/05/30 03:14ID:???愚問スマソ
0094nobodyさん
04/05/30 04:31ID:???perlからサイズ取得スクリプト(PHP)を実行して帰って来た結果をperl側で取得することは不可能でしょうか?
教えて下さい。お願いします。
0095nobodyさん
04/05/30 04:36ID:???はい、終わり。
後はグーぐるでね
0096nobodyさん
04/05/30 11:27ID:???/ /⌒)ノ ペタン
∧_∧ \ (( ∧_∧
(; ´Д`))' ))(・∀・ ;) < 餅つけ
/ ⌒ノ ( ⌒ヽ⊂⌒ヽ
.(O ノ ) ̄ ̄ ̄()__ )
)_)_) (;;;;;;;;;;;;;;;;;;;)(_(
0097nobodyさん
04/05/30 17:22ID:???こんなモジュールを見つけたよ。
http://search.cpan.org/~ysas/SWF-File-0.33/lib/SWF/Parser.pm
&headersubコールバックを定義しておけば、perlだけで情報が取れそう。
0099nobodyさん
04/05/30 20:27ID:???どのように書き直せばいいのでしょう?
$i1,$i2 = split("_",$name);
$name = $i1$i2;
0102nobodyさん
04/05/30 20:49ID:???スレの趣旨には合っているがあまりに酷すぎる。>>100の言うとおりに教科書買え。
($i1,$i2) = split("_",$name);
0104nobodyさん
04/05/30 21:50ID:???エラーログをよく見ろ。
010599
04/05/30 22:07ID:???(Missing operator before $i2?)
syntax error at ../bbs/bbs.cgi line 651, near "$i1$i2"
../bbs/bbs.cgi had compilation errors.
なんですが。
0107nobodyさん
04/05/30 22:47ID:Mg+ccEmx0108nobodyさん
04/05/30 22:53ID:???0109nobodyさん
04/05/31 00:25ID:???0110nobodyさん
04/05/31 01:09ID:???0111nobodyさん
04/05/31 06:12ID:???0112nobodyさん
04/05/31 22:39ID:1T44mYBtlist.txtの、一番上の行にテキストを追加したいのですが
open(OUT, ">> list.txt");
@list = <OUT>;
unshift (@list,"追加の行<br>\n");
print(OUT "@list");
close(OUT);
このようにやると、一番下の行に追加されます。
どこが間違ってるのでしょうか?
0113nobodyさん
04/05/31 22:45ID:???0114nobodyさん
04/05/31 22:45ID:???0115nobodyさん
04/05/31 22:52ID:???0116112
04/05/31 23:05ID:???open(IN, "list.txt");
@list = <IN>;
unshift (@list,"追加の行<br>\n");
close(IN);
open(OUT, "> list.txt");
print(OUT "@list");
close(OUT);
できましたぁー!
読み込みと書き出しは同時にできないってことでしょうか?
0120nobodyさん
04/05/31 23:41ID:???特定の状況?(原因が不明)で下記のエラーが出てしまいます。
Illegal division by zero at C:\www\home\bbs.cgi line 2020.
エラーが出ない場合は普通に書き込めるのですが・・・。
自分なりに原因を探ってはみたのですがお手上げです。
何卒ご教授下さい。宜しくお願いします。
0122nobodyさん
04/05/31 23:58ID:???英 語 が 読 め な い ん で す
とかじゃねーの
どちらにせよ典型的な真性厨ですな
0123nobodyさん
04/05/31 23:58ID:???ケーキを0人で割ると誰にも分けなくていいから全部わたしのもの、とか考えてるツルペタ。
0125112
04/06/01 00:46ID:g7eZEVaT>>116のようにして書き足していったlist.txtを覗くと、データが
追加の行<br>
追加の行<br>
追加の行<br>
追加の行<br>
のようにヘンなインデントがついてるんです
なぜでしょうか?
0126nobodyさん
04/06/01 00:57ID:???配列変数は、ダブルクォート文字列中で、配列のすべての要素を変数 $"
(Englishでは $LIST_SEPARATOR) 中に示す区切り文字 (デフォルトは
スペース) でつなげて展開されます。以下は同値です:
$temp = join($", @ARGV);
system "echo $temp";
system "echo @ARGV";
</q>
0127nobodyさん
04/06/01 06:06ID:???たぶんスカラー変数を""で囲むのを普段から何の疑いも無くやっていて、その延長で
リストを囲んだらおかしくなったってパターンなんだと思うけど。
そうやれ!とか書いてある参考書でもあるの?
0128nobodyさん
04/06/01 07:54ID:???0129nobodyさん
04/06/01 10:22ID:???print @data
はPerlだと挙動が違うんだよねぇ
勉強しろよ
0131nobodyさん
04/06/03 20:11ID:???画像に埋め込まれているメタデータとキーワードが一致しているかどうかで、
検索をしているイメージ検索エンジンってありますか?
<img src="map.jpg" alt="地図" title="日本地図">
↑のaltやtitleの部分や画像周りのテキスト、ファイル名などを
検索するのがGoogleだと思うんですけど、
画像に組み込まれている日付だとか著者とかをキーワードと一致するか、
検索するシステムが無ければ作ろうと思うのですが、
どなたか上記のような検索システムがあれば、教えてください。
無ければトライしてみようと思います。
0133nobodyさん
04/06/04 07:10ID:???後の1文字を消せるんですが、スクリプトで<STDIN>で入力する時に、
backspaceを使うと、^Hが表示されて文字を消すことができません。
どうすれば文字を消せるようになるのでしょうか。
Perl 5.6.1、Debian 3.0を使っています。
0135nobodyさん
04/06/04 07:33ID:???^H返すのってわりと普通の動作じゃないんですか?よく聞くんですけど
俺のスクリプト使う奴は全員backspaceコードに^H使うな!
とは言えないので…。
0136nobodyさん
04/06/04 08:42ID:???それ、Debianのせいじゃない?
どのバージョンでどうなのかは知らんけど。
ttp://www.fastwave.gr.jp/diarysrv/mad-p/200205c.html#20020525-1
Linux板のほうがいいかも。
0138nobodyさん
04/06/05 07:36ID:HWhcKEoWそれだと処理の重さ軽さなどは変わりますか?
0139nobodyさん
04/06/05 07:47ID:???0140nobodyさん
04/06/05 09:45ID:HWhcKEoWどうやるの?
0141nobodyさん
04/06/05 09:49ID:???0142nobodyさん
04/06/05 13:37ID:tmR5KH99(UNIX, perl v5.8.0)
#!/usr/bin/perl
$str = "あい";
$str =~ tr/あいうえお/アイウエオ/;
print $str;
0143nobodyさん
04/06/05 14:05ID:???0144nobodyさん
04/06/05 14:41ID:6aQba7Dj解決策1: Jcodeモジュールのtrを使う
use Jcode;
$str = "あい";
print Jcode->new($str)->tr('あいうえお','アイウエオ');
解決策2: unicode機能を使う
use utf8;
use encoding 'euc-jp', Filter=>1;
$str = "あい";
$str =~ tr/あいうえお/アイウエオ/;
print $str;
use encodingのとこのeuc-jpは適当に自分が使っている
コードにあわせてくれ。
0145未承諾広告※ ◆TWARamEjuA
04/06/05 15:05ID:CuLBZ8wK5.8.0 環境とのことですので後者の方ですね。
0146nobodyさん
04/06/05 15:06ID:???0147プロ固定金土日こと星山成寿(李明煕/イ・ミョンヒ)
04/06/05 15:21ID:???の2ちゃんねるワンポイントアドバイスの時間です。
長年プロ固定してますので、削除とか他人のIP抜き取り個人情報調べ、
2ちゃんねるのアングラの仕事など西村博之の右腕として広範囲な仕事を
任されております。一般に2ちゃんねるは、収益を上げてない個人管理の掲示板
かのように思われていますが、各トピックごとに様々な人間がアクセスしてくる
ため、それらのIPで個人情報を調べた名簿を企業に売買しすることにより、
裏側では巨大な収益をあげております。DHCの裁判でいきなり5億円もの損害賠償
を請求されているのも、彼らの独自の調査によって2ちゃんが裏側で稼いでいる
情報がばれているからにほかなりません。2ちゃんねるでも、ほんの一部の幹部
しかしらない情報としましては、「薬・違法掲示板」の名簿を、覚醒剤の売買
組織に、売り捌いていることです。これに関しては、アングラマネーなので当然
税金もかからず、実は一番の巨大な利益は「薬・違法掲示板」で集まった
シャブ中連中の個人情報を組織に転売することにより得ています。
最近それらの情報に警察や公安が気づき始めたため、西村博之の実家には何度も
ガサ入れ(家宅捜査)に入られており、逮捕への証拠固めとして、国家権力が
動き始めて、かなり立場的には危険になったことは確かです。ですので、
以前ほど堂々と、そのような行為もできなくなってきているので、私も住居を
転々としている次第です。あっ、このことについては、本当に危ない話
なので、他言しないでくださいね。もしばれた場合は、ネタ情報として
逆にでたらめな似通った情報をたくさんネット上に流すことにより、煙に
まいてください。大抵の場合、ガセの情報をたくさん流せば、またネタが
始まったと、冗談で終わります。以前オウム真理教が毒ガスサリンを
自分たちが作っているのに、毒ガスで命を狙われたなどと自作自演した
作戦と同じ手口ですね。よろしくお願いします。
0150nobodyさん
04/06/05 15:52ID:???何をしたいか詳しく書け。
0151146
04/06/05 16:11ID:???というCGIなのですが、編集時にもう一回パスワード照合したいんです。
もう一回パスワード入力するのも面倒なのでログイン時に入力したパスワードを
編集用のCGIに渡したいんですが、どうすれば良いでしょうか。
分かりにくくてすみません。
0153nobodyさん
04/06/05 16:25ID:???フォームを使わずにっていうから何かと思ったらそんなことかよ・・・
そんな単にページ変移毎にパスワードを必要とするありふれた仕組みぐらい
工夫して書けよ。
ほとんどどんなスクリプトでもやってることだろ。
そんなことならスレ違いだし他のスクリプトでも見て勉強してちょうだい。
0154nobodyさん
04/06/05 20:33ID:jT/a/NFiPerlにてファイル内の特定文字を検索するにはどういうコードを書けばいいでしょうか?
ファイルの中身を全部配列に入れてjoinして強引に検索出来そうな気もしますが
もっとスマートな方法あったら教えてもらえますでしょうか?
0157nobodyさん
04/06/06 00:41ID:timkGFaS有り難うございます。
そういう方法しかないのですね。それでやってみます。
0158nobodyさん
04/06/06 17:31ID:RQ9IWgny0159nobodyさん
04/06/06 17:34ID:???$名前ってのがそうです。
【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
「コマンドの意味がわかんない」とかはマニュアル見ましょう。
回答者さんは何でも屋じゃありません。
1: 自分はこう言う事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。
0160158
04/06/06 17:49ID:RQ9IWgny変数に代入されている値がスカラーかハッシュへのリファレンスかで
処理する内容を変えたいのですが,プログラム内部でそれを判断する
方法はないでしょうか?
0161nobodyさん
04/06/06 17:49ID:???$noって=$filenameですよね?
なぜ$filenameを$noで再度置き換える必要があるのでしょうか?
後、print "$no";で一度記述してるのに
後にif文で再度同じ事をしてるのはなぜですか?
#! /usr/local/bin/perl
# ログファイル名
$filename = "count.txt";
# ファイルを開く
if (!open(FP,"$filename")) { # 失敗
$no = 0;
} else { # 成功
$no = <FP>;
close(FP);
}
# 1つ増やす
$no++;
print "$no";
if (!open(FP,">$filename")) { # 失敗
print "ファイル $filename がオープンできませんでした ($!)\n";
}else{
print FP $no;
close(FP);
}
0163nobodyさん
04/06/06 18:42ID:???ref <変数> でリファレンスかそうでないかがわかるよ。
リファレンスじゃないなら偽。
リファレンスなら、種類によってARRAYとかHASHとかが返される。
0164nobodyさん
04/06/06 18:56ID:kS2UjgnM「\x{0082}ノ\x{0082}ル\x{0082}\x{00f1}\x{0082}イ」
と、表示されてしまいました。
「use encoding 'shift_jis';」を指定しており、
もし「use encoding 'shift_jis';」の一行を取り除くと、
ちゃんと「にほんご」と表示されます。
「use encoding 'shift_jis';」を指定した場合も、、
「にほんご」と表示されるようにするには、どうしたらよいでしょうか。
環境
ActivePerl 5.8.3 Build 809
Windows XP Pro SP2, IIS
0165164
04/06/06 18:57ID:kS2UjgnM--- ここから ---
use CGI;
use encoding 'shift_jis';
$cgi = CGI::new();
$text1 = $cgi->param('text1');
print <<EOM;
Content-type: text/html
<HTML>
<BODY>
$text1<br>
</BODY>
</HTML>
EOM
--- ここまで ---
0166160
04/06/06 19:09ID:???うまくいきました。ありがとう。
XML::Simpleで取り出したデータ構造が,同じ階層でスカラだったり,
ハッシュだったりしたので困ってました。
漏れが買った本には載ってなかったけど新しい関数だからかな?
<参考>
ttp://www.futomi.com/cgi-bin/lecture/perl5ref.cgi?MODE=CATEGORY&CATENO=21
ttp://www.futomi.com/cgi-bin/lecture/perl5ref.cgi?MODE=DISP&FUNC=ref
0167161
04/06/06 20:05ID:ZCQZgjkYのに後にイフで再度書き込もうとしてるのはなぜですか?
print "$no";
if (!open(FP,">$filename")) { # 失敗
print "ファイル $filename がオープンできませんでした ($!)\n";
}else{
print FP $no;
close(FP);
}
0168nobodyさん
04/06/06 20:18ID:???print "$no";
if (!open(FP,">$filename")) { # 失敗
print "ファイル $filename がオープンできませんでした ($!)\n";
}else{
print FP $no;
close(FP);
}
print "$no";
したらどうよ。
0169nobodyさん
04/06/06 20:20ID:???後ろの方には FP が入ってるわけですが、そこんとこどうよ?
0170nobodyさん
04/06/06 20:35ID:ZCQZgjkYprint FP $no; がcount.txtへの書き込みという事ですか?
■ このスレッドは過去ログ倉庫に格納されています