Perlコーディング初心者質問スレ Part 57
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/02/25(月) 19:25:51ID:???【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
「コマンドの意味がわかんない」とかはマニュアル見ましょう。
回答者さんは何でも屋じゃありません。
1: 自分はこういう事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。
最低でも1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。
お勧めサイトは >2 以降
前スレ http://pc11.2ch.net/test/read.cgi/php/1189939783/
過去ログ倉庫 ttp://user.ftth100.com/mirrorhenkan/perl/
0754nobodyさん
2008/06/16(月) 12:53:21ID:???0755nobodyさん
2008/06/16(月) 23:32:06ID:???0757nobodyさん
2008/06/17(火) 10:41:46ID:???実際に色々な条件でPOST、GETさせてみて、
おかしくなったらそのつど、修正します。
あとは、スクリプトをWEB上にアップしている場合、
ユーザーの方からのバグ報告フォームを設けておくと、
問題発見が早くなります。
コマンドライン POSTで検索:
http://www.google.co.jp/search?hl=ja&rls=GFRC%2CGFRC%3A2007-04%2CGFRC%3Aja&q=%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%83%A9%E3%82%A4%E3%83%B3%E3%80%80POST&lr=
0759nobodyさん
2008/06/17(火) 14:47:07ID:???0760nobodyさん
2008/06/17(火) 16:37:40ID:???0761nobodyさん
2008/06/17(火) 18:26:54ID:???意地はってないで、「わかりません!教えてください!」っていうのがオトナだよ
0762nobodyさん
2008/06/17(火) 18:42:33ID:???意地はってないで、「詳しいことはわかりません!!」っていうのがオトナだよ
0763nobodyさん
2008/06/17(火) 18:53:23ID:???0764nobodyさん
2008/06/18(水) 12:33:38ID:???0765nobodyさん
2008/06/18(水) 14:54:32ID:???guess_encoding のあとに $utf8 = $enc->decode($inputkeyword); とやってるのですが、エラーとなります。
「 or 」 で split して
my $utf8 = Encode::decode($EncType[0], $inputkeyword);
のようにしたりするのが一般的なんでしょうか?
それとも Encode::decode する際に優先順位を決めたり出来て、それで decode できちゃったりするもんでしょうか?
0766nobodyさん
2008/06/18(水) 15:02:39ID:???一般的かどうかは知らんが、俺は JEncode::_func_getcode() みたいな
ラッパーを書いて使っている。
http://www.donzoko.net/source/JEncode/JEncode.pm
0767nobodyさん
2008/06/18(水) 15:25:31ID:???ありがとうございます。
_func_getcode と _ambiguous、_test_mojicode を見ながら実装します。
0768nobodyさん
2008/06/20(金) 01:13:32ID:???@X1(d,e,f);
と二つリストを作って、
$Y = int(rand(2));
で$Yに0か1を入れて、それに対応したリストを使いたいのですが、どうすればいいですか?
print "$X"$Y"[1]";
のような感じにしたいのですが…。
0769nobodyさん
2008/06/20(金) 01:41:21ID:???0770nobodyさん
2008/06/20(金) 01:43:48ID:???print @{'X'.$Y}[1];
0771nobodyさん
2008/06/20(金) 01:53:59ID:???カッコイー
こんな風にしてた。
$Y = 'X'. int(rand(2));
print ${$Y}[1];
横からスマソ
0773nobodyさん
2008/06/20(金) 08:10:04ID:???今時シンボリックリファレンスはやめとけ。
use strict;
my @X = [[a,b,c], [d,e,f]];
print $X[0]->[1]; # ==b ($X[0][1] とも書ける)
print $X[1]->[2]; # ==f
0775768
2008/06/21(土) 17:41:30ID:???バカの一つ覚え状態でかいてます><
>>773の書き方は始めてみました。
ありがとうございます。
0776nobodyさん
2008/06/21(土) 17:48:55ID:???0777nobodyさん
2008/06/21(土) 23:46:21ID:???0779778
2008/06/22(日) 01:49:38ID:???0780nobodyさん
2008/06/22(日) 02:10:15ID:???ちょっとしたデータをファイルの中にまとめておければ便利だと思っているのですが、
そのような奴があれば、助かります。どなたかご教授ください。
0782nobodyさん
2008/06/22(日) 13:05:18ID:???open(COM_RET, "ping -n 10 192.168.100.1 |");
while ($data_line = <COM_RET>) {
print $data_line;
};
close(COM_RET);
0783nobodyさん
2008/06/22(日) 13:27:13ID:???pingコマンドは存在する?
openの後に$|=1;したら表示される?
for (`ping -n 10 192.168.100.1`){print;}ではどう?
0784782
2008/06/22(日) 13:28:07ID:???プログラムの保存先を間違えていました。
0785nobodyさん
2008/06/25(水) 22:01:59ID:???フォームのデータがおかしくなってたことありませんか?
たとえば、なにも入力しなかったinputフォームの値が全て文字列の"VALUE"に
なったり・・・
0786rubi
2008/06/26(木) 00:32:36ID:P35F8OvT0787nobodyさん
2008/06/26(木) 00:55:50ID:???引数中にスペース等ある時は、
system qq($cmd "$arg1" "$arg2" ・・・);
0788nobodyさん
2008/06/27(金) 16:35:38ID:???こんなファイルがあります → 項目\tデータ\n
中には同じ項目でデータ違いがあります。
100\t百\n
100\t百円\n
100\t百円玉\n
同じ項目は一つで良いので一番データの短い100\t百\nを残して
残りの長い二行を削除したいと考えています。
何か良い方法は無いでしょうか。
短いデータのみ残したいので配列の重複削除サンプルは
そのままでは利用不可でした。
0789788
2008/06/27(金) 16:38:10ID:???重複サンプル〜以下は忘れてください。
0790nobodyさん
2008/06/27(金) 17:02:39ID:???0791788
2008/06/27(金) 17:30:24ID:???項目もデータもバラバラなので方法が思いつかなくて。
0792nobodyさん
2008/06/27(金) 17:41:01ID:???0793788
2008/06/27(金) 17:59:26ID:???そうじゃなくて、連想配列にしてデータサイズでソートとかあるんでしょうか?
分かりません(><)
0794nobodyさん
2008/06/27(金) 18:21:02ID:???0795nobodyさん
2008/06/27(金) 18:27:40ID:???まずはopenでファイル開けるの解かる?
0796788
2008/06/27(金) 18:50:29ID:???連想配列に入れてみました。
my %DATA;
open R, "koumoku.txt" or die;
while (<R>) {
chomp;
my ($key, $value) = split(/\t/);
$DATA{$key} = $value;
}
close R;
データサイズでソートは後でググってみます。
項目ごとに最短データだけ残す方法は今の時点で想像できません。。
0797nobodyさん
2008/06/27(金) 19:15:25ID:???if (exists $DATA{$key}){
length($DATA{$key}) > length($value) and $DATA{$key}= $value;
} else {
$DATA{$key}= $value;
}
0798nobodyさん
2008/06/27(金) 19:47:44ID:???食事してて遅れました。
そのままコピペしたのですが望むとおりです完璧です。
項目ごとに一番小さいデータが残る。凄い考え付かない。
本当にありがとうございました。
0799nobodyさん
2008/06/28(土) 13:36:15ID:???・母親は受験勉強をする息子の学力向上のためにフェラチオをする
・日本人女性の55%は、出会ったその日に男と寝る
・ファストフードは女子高生たちを性的狂乱状態におとしいれる
・ティーンたちはバイアグラを使ってウサギのようにセックスをする
・女子高生は、刺激のためにノーブラ・ノーパンになる
・日本の最新の流行 : 70歳の売春婦
・老人の売春婦の人気にもかかわらず、日本では小学生の売春婦にも仕事がある
・日本の若い看護婦は売春婦に勝る
・24時間オルガズムが止まらない病気で苦しむ日本人女性の数が増えている
・15未満の子供を対象とした疑似ポルノが日本に蔓延している
・OLの72%が、セックスをより堪能するために何らかのトレーニングを受けている
・人妻は気分転換の目的で昔の恋人に抱かれに行く
・主婦は郊外のコイン・シャワーで売春をしている
・日本男子は柔道や空手の部活で男相手に童貞を捨てている
・ほとんどすべての漁師は海でマンタとSEXしている
・まだ10代の少年から退職した老人までみんな2980円の手コキを利用している
・六本木のあるレストランでは、食事の前にその材料となる動物と獣姦する
※同社が全年齢向けコーナーで七年以上にわたり世界に向けて配信していたものの一部です
※同社の行為は日本人への偏見や人種差別、婦女暴行、幼児虐待を助長するものです
◆毎日新聞の英語版サイトがひどすぎる まとめ@wiki
http://www9.atwiki.jp/mainichiwaiwai/
◆毎日新聞問題の情報集積wiki
http://www8.atwiki.jp/mainichi-matome/
つまり日本人なら
http://www.vipper.net/vip552788.jpg
0800nobodyさん
2008/06/29(日) 21:21:31ID:ib7dTQ8mSyntax::Highlight::Engine::Kateはちょっと好みじゃなかったのと、
Text::Highlightは今のところ使い方が分からないの。
0801nobodyさん
2008/06/29(日) 21:37:01ID:???0802nobodyさん
2008/06/29(日) 23:14:30ID:???0803nobodyさん
2008/07/03(木) 04:34:06ID:N0WlacZt220 名前: 名無し三等兵 [sage] 投稿日: 2008/06/30(月) 00:35:59 ID:???
イスラムや胡錦濤の記事にもhentai入ってて
ニュー速の連中がアルジャジーラとかにメールしようとして
鬼女が止めに入ったり、なかなかわかってるなぁと。
262 名前: 名無し三等兵 [sage] 投稿日: 2008/06/30(月) 00:43:47 ID:???
つーか原理主義者は日本に入り込んでいるし組織もあるから
原理主義者によって白昼堂々人通りのある場所で首を掻き切られて
助教授が殺されて犯人が何も特定できていないわけで・・・
297 名前: 名無し三等兵 [sage] 投稿日: 2008/06/30(月) 00:51:28 ID:???
>>272
いや・・・それが・・・
タレコミより前に韓国でコーランが焼かれたと報道されてて
アルジャジーラTVより韓国でコーランを燃やす映像が放映され、アラブ諸国でさまざまの反応が出ている。
・その映像を見た老人がショック死(サウジアラビア)
・その映像を見た青年ら十数人が韓国大使館に投石(シリア)
★祭り★ 「日本の母は息子の性処理係」毎日新聞が捏造記事41
http://human7.2ch.net/test/read.cgi/ms/1215003832/
★祭り★ 【毎日・変態報道】 毎日新聞、「2ちゃんねる」を名指し…「女性社員中傷書きこみで法的措置」で★26
http://mamono.2ch.net/test/read.cgi/newsplus/1215016627/
【記者】毎日新聞の英語版記事で日本を侮辱【豪人】
http://academy6.2ch.net/test/read.cgi/english/1213971760/
【Daily】毎日新聞英語版がひどすぎる 3【WaiWai】
http://society6.2ch.net/test/read.cgi/mass/1214603376/
【毎日新聞】 iチャネル解約スレ 【変態報道】
http://hobby11.2ch.net/test/read.cgi/keitai/1214802475/
0804nobodyさん
2008/07/08(火) 20:37:38ID:???use CGI;
use Encode;
$cgi = CGI->new;
print "Content-type: text/html; charset=EUC-JP\n\n";
print encode('euc-jp', $cgi->param('test'));
とやって、それぞれUTF8,SJIS,EUCで'test'に入力しても、EUCコードでの文字列が出てこず、化けてしまいます。
どうやって強制的にEUCに変換するのか教えてください。
0805nobodyさん
2008/07/08(火) 20:38:36ID:???perlのバージョンは5.8.8です。
0806nobodyさん
2008/07/08(火) 20:44:53ID:???それも抜きだと jcode.pl で convert するくらいしか他に方法が無い?
0808nobodyさん
2008/07/08(火) 23:49:39ID:???encode()の第2引数は、デコード済みの文字列でないとだめでしょ。
encode(ocode, decode(icode, str))
ocode…出力する文字コード
icode…strの文字コード
str…入力する文字列
0809nobodyさん
2008/07/12(土) 09:51:37ID:???$format = $workbook->add_format();
$format->set_merge();
$worksheet->write_unicode(0, 0, utf8( Jcode->new('ぬるぽ')->utf8 )->utf16, $format);
$worksheet->write_blank(0, $_, $format) for 0..13;
っていう横方向のセルの結合は出来るんだが
$worksheet->write_unicode(0, 0, utf8( Jcode->new('ぬるぽ')->utf8 )->utf16, $format);
$worksheet->write_blank($_, 0, $format) for 0..13;
これだと結合できない。
仕様なのか俺がアフォなのか誰か教えれ!
0810809
2008/07/12(土) 11:19:24ID:???何となくできたわ。
お騒がせしますた。
0811nobodyさん
2008/07/12(土) 18:05:43ID:???お騒がせしたと思うのなら、どうやったらできたのか書くように。
同じ悩みで検索でたどりついた人はまた同じ質問をするでしょ?
0813nobodyさん
2008/07/13(日) 09:44:35ID:SNV4Eg13下記3行目のコードの意味がどうしてもわかりません。。
my @extract_links; #パーズ中に抽出されたURL
my $base = $response->base;
@extract_links = map { $_ = url( $_, $base )->abs; } @extract_links;
Perl初心者にもわかるようなコードに書き直すことはできますか?
何を勉強したら、このようなプロっぽいコードが書けるようになるのかも知りたいです。。
0814nobodyさん
2008/07/13(日) 17:38:13ID:???$ perldoc -f map
@extract_links = map { $_ = url( $_, $base )->abs; } @extract_links;
これはフィルタです。
@extract_links = <--(フィルタ)-- @extract_links;
右側の @extract_linksにフィルタをかけて、自分自身に代入しています。
右側から入ってきた @extract_linksの各要素は、$_に入れられます。
その各要素に対して、
url($_, $base)->abs;
という処理をして(多分相対パスから絶対パスにしているのでしょう)、
その結果を $_ (自身) に入れています。
$_ = url($_, $base)->abs;
結果として@extract_linksの中身が全部絶対パスになって返ります。
0815nobodyさん
2008/07/13(日) 23:01:57ID:???プロっぽいどころか、「どこの素人が書いた?」って言われるコード
だと思うが、、、何で無意味な代入をするかねぇ
3行目の代りになるコード。初心者向け。
foreach my $cont ( @extract_links ){ $cont = url( $cont, $base )->abs ; }
# $_ = url( $_, $base )->abs for @extract_links ;
0816nobodyさん
2008/07/13(日) 23:03:33ID:???map自体を否定してるんじゃないです。
0817nobodyさん
2008/07/13(日) 23:10:10ID:???mapブロック内で$_を変更したら、配列にも影響する。
だから、戻り値で置き換えるのは2度手間ってこと。
mapかforeachかは宗教論争だから好きなの使っとけ。
>>815のが見やすいことが多いけどな。
0819nobodyさん
2008/07/14(月) 00:04:04ID:???馬鹿すぎる
0820nobodyさん
2008/07/14(月) 01:16:23ID:???0821nobodyさん
2008/07/14(月) 14:17:03ID:???0823nobodyさん
2008/07/14(月) 15:02:41ID:???「print "match!\n"if(/^main::HOGE/);」とかしたいんですが、
うまい方法はありませんか?
「my $a=main::HOGE;print "match!\n"if(/^$a/);」はできるんですけど。
正規表現内で、use constant で定義した定数を使いたいのです。
0824nobodyさん
2008/07/14(月) 15:29:04ID:???print "match!\n" if(/^${\HOGE}/);
0825813
2008/07/14(月) 22:29:29ID:ojoqjs1pPerl初心者がいきなりクローラーを作ろうというのが、
ちょっと無謀だったかも。。
基礎から勉強します。(・з・)
0827nobodyさん
2008/07/16(水) 23:13:16ID:???splitで、&を区切り文字として指定した場合、
参考書だと、
&が消える、っていう説明と、
&が残る、って説明が混在しているんだが、
どっちが正しいの?
0828nobodyさん
2008/07/16(水) 23:13:48ID:???0830nobodyさん
2008/07/16(水) 23:54:09ID:???オレらの業界って気軽に試せないのね。
ダムがあったとして
「ここにもし10cmくらいの穴を開けたらどうなるだろう?」
みたいなところなんで、
「いきなり実行する」
っていうのはキチガイ扱いされてクビになるのね。
0832nobodyさん
2008/07/17(木) 00:39:50ID:???&は消える。
参考書のほうが間違ってたわ。
0833nobodyさん
2008/07/17(木) 00:55:40ID:???出版元に問い合わせてみたら?
0834nobodyさん
2008/07/17(木) 02:41:15ID:???1は消えてるんだけど、
2は残ってるの。
余計混乱するわ。
0835nobodyさん
2008/07/17(木) 03:23:04ID:???0836nobodyさん
2008/07/17(木) 05:31:29ID:???「普通は」消えるが正解。正規表現内で()でトラップすりゃ残る。
$str = 'a&b&c&d&' ;
split /&/, $str ; # <= 消える。
split /(&)/, $str ; # <= 残る。
split /(?:&)/, $str ; # <= 消える。
なんで態々解説したかと言うと、区切り文字「列」を二つ使う場合に(|)使ってトラップさせて
「消えないんすけど」って質問された事があったから。
split /(&|:)/, 'a&b&c&d:e:f:g' ; # 本来は区切り文字列ね。
0837nobodyさん
2008/07/17(木) 05:57:35ID:???こういうつまんないことってフレームワークに全部お任せすればよくね。
0838nobodyさん
2008/07/17(木) 06:17:36ID:???0839nobodyさん
2008/07/17(木) 06:48:41ID:???0841809
2008/07/17(木) 09:39:10ID:???すまんこすまんこ。さらに遅レスすまんこ
Spreadsheet::WriteExcelでセルの結合に悩んでるヤシは
ttp://www.koders.com/perl/fid09386E1C3E183B96174D224B87445AE647A32B23.aspx
ここを見れ!
例文が載ってたわ。
0843nobodyさん
2008/07/17(木) 22:27:51ID:???そういうのの、一覧表がのってる
ページをおしえて
0844nobodyさん
2008/07/17(木) 22:29:43ID:???0845nobodyさん
2008/07/18(金) 01:28:58ID:???0847nobodyさん
2008/07/18(金) 09:49:50ID:???0848nobodyさん
2008/07/19(土) 10:24:55ID:???教えてください。
$salt =~ s/[^\.-z]/\./go;
0849nobodyさん
2008/07/19(土) 10:33:23ID:???0851nobodyさん
2008/07/19(土) 18:39:57ID:???$salt =~ # Apply following pattern to $salt
s/ # Start substitution expression
[ # Start difine charactor class
^ # This is negated class
\.-z # Range: "." .. "z" by charactor-code
] # End define charactor class
/ # End pattern and start substitution string
\. # Means "." (NOTE: "\" is meaningless here)
/gox; # Modifiers
# g: global matching
# o: compile the pattern only once
## (x: extended)
>>849
> 5本の指が入る # So loose, and so non-useful for hacking.
■ このスレッドは過去ログ倉庫に格納されています