X



Perl初心者スレ(マジレス回答)
0002デフォルトの名無しさん
垢版 |
2012/10/07(日) 00:50:26.06
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

                  京都大学霊長類研究所
0003デフォルトの名無しさん
垢版 |
2012/10/07(日) 01:10:26.82
>>1
おつ!
ありがとうございます
0004デフォルトの名無しさん
垢版 |
2012/10/07(日) 01:46:15.82
マジレス?
じゃあ遠慮なく

>>1
板荒らすために立てたんじゃないならさっさと削除依頼しろクズ
本スレでさえ閑古鳥が鳴いてるのに次スレ立てるから荒らし予備軍の温床になってんだよ
今日の糞スレ乱立を見ればわかるだろ
0005デフォルトの名無しさん
垢版 |
2012/10/07(日) 01:55:03.21
■関連スレ

在日韓国人プログラミング
http://toro.2ch.net/test/read.cgi/tech/1349527575/

チョッパリは謝罪しる!
http://toro.2ch.net/test/read.cgi/tech/1349527506/

おちんちんを入れてください
http://toro.2ch.net/test/read.cgi/tech/1349527445/

ほむらたんをあいしてる
http://toro.2ch.net/test/read.cgi/tech/1349518465/

我らPGにしてPGにあらず
http://toro.2ch.net/test/read.cgi/tech/1349518997/

おちんちんを入れる
http://toro.2ch.net/test/read.cgi/tech/1349518715/
0006デフォルトの名無しさん
垢版 |
2012/10/07(日) 01:56:03.28
■関連スレその2

カチャカチャPGの叫び
http://toro.2ch.net/test/read.cgi/tech/1349518930/

プログラマー=キチガイ
http://toro.2ch.net/test/read.cgi/tech/1349518840/

チンパンジーの舞
http://toro.2ch.net/test/read.cgi/tech/1349516893/

今、ム板に必要なのはIDより板の設定変更
http://toro.2ch.net/test/read.cgi/tech/1349513203/

こんにちはみなさん。
http://toro.2ch.net/test/read.cgi/tech/1349503990/
0008デフォルトの名無しさん
垢版 |
2012/10/07(日) 10:56:38.94
初心者なので CGI と Perl の区別がつかないこともあると思いますが、
どうぞ質問してください。
スレ違いの質問にはスルーか、速やかな誘導をお願いします。
回答者が現れるまで待ちましょう。

[プログラミング自体の経験が無いひとはまずココを読む]
とほほのperl入門: ttp://www.tohoho-web.com/wwwperl.htm

[厳選・オンラインドキュメント]
perldoc.jp: ttp://perldoc.jp/
Perl メモ: ttp://www.din.or.jp/~ohzaki/perl.htm
Perl のページ: ttp://homepage1.nifty.com/nomenclator/perl/
Perl の小技: ttp://homepage3.nifty.com/hippo2000/perltips/index.htm
0009デフォルトの名無しさん
垢版 |
2012/10/07(日) 11:01:39.61
# [Perl 日本語処理の基礎の基礎]
# まず、以下の行を先頭に入れて下さい。

use utf8;
use open IO => ":encoding(cp932)";
binmode STDIN => ":encoding(cp932)";
binmode STDOUT => ":encoding(cp932)";
binmode STDERR => ":encoding(cp932)";
use Encode;

# 以上の内容は、日本語処理が解らない人でも、とりあえず日本語処理ができてしまう
# おまじないです。
0010デフォルトの名無しさん
垢版 |
2012/10/07(日) 11:07:51.43
上記の記述は1行で書くこともできます。

use encoding 'cp932'; # [Perl 日本語処理]

初心者にはこれが一番あってると思います。
徐々に経験を積んで、難しい記述にチャレンジしていきましょう。
0014デフォルトの名無しさん
垢版 |
2012/10/07(日) 21:24:43.64
↑ながらく機能していない上にCGIの質問をすると怒られます。
 Perlの質問をするとPHPの回答が返ってきます。
 それでも構わないなら、どうぞ。
0017デフォルトの名無しさん
垢版 |
2012/10/07(日) 22:29:39.78
■関連スレ

おちんちんランド開園
http://toro.2ch.net/test/read.cgi/tech/1349453856/

ム板を荒らしている連中の正体
http://toro.2ch.net/test/read.cgi/tech/1349260204/

おちんちんを舐めよう
http://toro.2ch.net/test/read.cgi/tech/1349454008/

ム板住民に言いたい1000のこと
http://toro.2ch.net/test/read.cgi/tech/1349192669/

低級言語のすばらしさ
http://toro.2ch.net/test/read.cgi/tech/1349496941/

 
http://toro.2ch.net/test/read.cgi/tech/1349502749/

ム板の住民構成
http://toro.2ch.net/test/read.cgi/tech/1349453824/
0026デフォルトの名無しさん
垢版 |
2012/10/08(月) 10:06:15.64
my @array_unique = keys %{{map {$_,1} @array}};

perl 5.14 以降なら
my @array_unique = keys {map {$_,1} @array};
0031デフォルトの名無しさん
垢版 |
2012/10/08(月) 14:31:44.97
あるサイトにアクセスして数値を取得してreturn $num;で値を返す関数を作ったとします
get_num();

my $num=200
while(1)
{
if(new_num() >=$num)
{
okと表示
}
}

okがうまく表示されません
毎回get_numでサイトにアクセスして取得しているというのが悪いんでしょうか?原因がわかりません教えてください
003231
垢版 |
2012/10/08(月) 14:33:07.32
new_num()で取得した値は $numより大きいです
大きいのになぜか比較されずにスルーで何も表示されずループです
0033デフォルトの名無しさん
垢版 |
2012/10/08(月) 14:39:56.54
>あるサイトにアクセスして数値を取得してreturn $num;で値を返す関数を作ったとします
↑これは get_num() のことですか?new_num() のことですか?

get_num() は return $num; しないんですか?戻ってきた値は使わないんですか?

>毎回get_numでサイトにアクセスして
↑ get_num() は while の中にありませんが、この外にループがあるんですか?
0035Perl忍者 ◆M5ZWRnXOj6
垢版 |
2012/10/08(月) 14:44:44.21
>>31
$|=1;
それかprint "ok\n";
改行いれとけ
0037デフォルトの名無しさん
垢版 |
2012/10/08(月) 15:14:18.81
>>31
マジレスすると
お前みたいな低脳には無理
0040デフォルトの名無しさん
垢版 |
2012/10/08(月) 16:04:33.60
>>37=>>38=>>39
0041デフォルトの名無しさん
垢版 |
2012/10/08(月) 16:16:12.31
>>31=>>39
0042デフォルトの名無しさん
垢版 |
2012/10/08(月) 17:19:35.10
$|=1;
my $num=200; ←セミコロン忘れるな
while(1){
  if(get_num() >= $num){ ← get_num()、な
    print "ok\n"; ← うるせぇやつがいるから改行、な
    last; ← これなけりゃ無限ループだわな
  }
  sleep(60); ← Web にアクセスするなら忘れるんじゃねぇぞ
}
0047デフォルトの名無しさん
垢版 |
2012/10/08(月) 18:46:17.85
文字列 $str の末尾の「.cpp」を「.o」に置換し新たな文字列 $new_str を生成したいのですが
s/// だと元文字列を書き換えてしまいます
コピーしてから置換でも良いのですが、書き換えずに置換する関数や演算子はないでしょうか?
0050デフォルトの名無しさん
垢版 |
2012/10/08(月) 19:24:24.71
>>47のような害虫はム板から駆除しなければならない。
0052デフォルトの名無しさん
垢版 |
2012/10/08(月) 19:47:46.05
>>47
演算子一覧くらい検索すればいくらでも出てくるだろ

それすら検索できないって本物の精神異常?
0054デフォルトの名無しさん
垢版 |
2012/10/08(月) 20:15:10.88
煽り叩きに加えて今度はイコール厨まで参戦ですか
ほんとスレの空気を悪くすることに関しては息ぴったりですねお前ら
006231
垢版 |
2012/10/08(月) 23:31:22.78
>>35
うまく出力されました
$|=1;とは何ですか?
改行の理由も教えてください

>>42
$|=1;をつける理由は?
lastだとループが終わってしまうので
0063デフォルトの名無しさん
垢版 |
2012/10/08(月) 23:37:12.37
>>32
>大きいのになぜか比較されずにスルーで何も表示されずループです

ループして困っているのか、ループしたいのか質問をはっきりしろ
0065デフォルトの名無しさん
垢版 |
2012/10/08(月) 23:58:56.98
こういう糞みたいな質問してる連中がム板のレベルを下げてる
0068デフォルトの名無しさん
垢版 |
2012/10/09(火) 11:14:53.75
何で分かるの?
あ、ご本人様ですか。
荒らしもやりながらこんな場末の糞スレチェックまでご苦労様です。
0069デフォルトの名無しさん
垢版 |
2012/10/09(火) 13:42:01.38
プロキシのレスポンスタイム計るにはどうするの?
教えてくれ
6.5s
5,8sとかあるだろ?あれ
0071デフォルトの名無しさん
垢版 |
2012/10/09(火) 16:16:14.44
PHPでいうマジッククォートみたいなのない?
sjisで送信するとき表とかがエスケープされずにエラーでちゃうんだけど
自動でエスケープしてくれる関数みたいなの無いの?
教えてください
0072デフォルトの名無しさん
垢版 |
2012/10/09(火) 16:57:01.82
自分で調べられないお前にはPHPがお似合いだ
0073デフォルトの名無しさん
垢版 |
2012/10/09(火) 17:05:55.35
>>71
ふたつのことを混同してしまってると思われる
「Perl XSS対策」「Perl Unicode」でそれぞれググれ
そして前者(XSS)にに関しては今後はWebProgへどうぞ
0077デフォルトの名無しさん
垢版 |
2012/10/09(火) 20:44:10.43
PHPのマジッククォートとSjisっておんなじものなのか?
微妙にやること違うと思うぞw
0078デフォルトの名無しさん
垢版 |
2012/10/09(火) 22:09:35.85
初心者でUnicodeはきついかもな
ごちゃごちゃしてて何がなんだかさっぱり分かんない
初心者にはshiftjisがいい
0081デフォルトの名無しさん
垢版 |
2012/10/12(金) 01:02:04.55
>>80
確信ないなら書くなゴミ
さっさと失せろキメェんだよ
0083デフォルトの名無しさん
垢版 |
2012/10/12(金) 01:38:15.26
それ言うなら use utf8; だろ
EncodeはUnicode以外だって扱えるんだから

でも牙が伸び過ぎると自滅してしまうこともある
ttp://blog.nakatanigo.net/archives/50474313.html
0095デフォルトの名無しさん
垢版 |
2012/11/12(月) 19:41:16.44
ActivePerl5.16.1使用中です。
---
print DAT @dat;
---
このようにして配列を書き出そうとしたのですが
なぜかテキストファイルに繁栄されません。
何か情報をご存知の方いらっしゃいませんか?
0097デフォルトの名無しさん
垢版 |
2012/11/13(火) 22:13:06.51
以下の一行スクリプトに文字を食わせて「XX月◯◯日のお知らせ!」の次の行から「-----」の前までを取り出そうとしています。
最期のs/^ +//は各行の先頭の全角の空白を取ろうとしたのですが、これが働きません。が、抜き取り自体は成功していました。
逆に、use utf8とすると/正規表現/が全くひっかかりらず何もprintされません。

perl -e '
#use utf8;
while (<>)
{
if (/\d+月\d+日のお知らせ!/) { last; };
#skip the line;
};
while (<>)
{
if (/-----/) { last; };

s/^\s+//;
s/^ +//;
print;
}'
0098デフォルトの名無しさん
垢版 |
2012/11/13(火) 22:28:35.29
perl -e '
use utf8;
while (<>)
{
if (/\d+月\d+日のお知らせ!/) { last; };
#skip the line;
};
while (<>)
{
if (/-----/) { last; };

s/^\s+//;
{
no utf8;
s/^(?: )+//;
}
print;
}'
0099デフォルトの名無しさん
垢版 |
2012/11/16(金) 00:37:30.32
どうもです。
状況なのですが、use utf8すると全くおかしいです。/\d+月… /のマッチが全く成功しないので、
目的通りの結果が出ません。uset utf8しないとうまく動きます。
実はMacのautomatorから呼び出されていてGet text from Webpage actionでとってきたテキストが
このperlに渡されているのですが…UTF-8の文字が来ているはずなのですが(指定のWebページのcharsetはUTF8)。

それはさておき
( ) / (?: )
の指摘ありがとうございました。上の行のs/^\s+//;と合わせて
s/^(?:\h| |\xc2\xa0)+//;
に書き換えました。
non breakable spaceも行頭に混じっていたので、そのUTF8表現のU+c2a0も追加。
これできれいに行頭の「空白」がとれて左詰めになりました。

とりあえずuse utf8;だけ殺して一見うまく動いているのでそれで利用を開始しました。
個人の趣味の自動化目的なのでそんな感じでまずはゴーしてしまいます。
0100デフォルトの名無しさん
垢版 |
2012/11/16(金) 00:44:04.42
utf8プラグマは作ったひとは使うのが簡単だと考えているんだろうけど、
使うひとにとっては非常に難しい。こういった処理モデルを理解しろと
いうほうに無理がある。結論としてはutf8プラグマは使わないほうが
よい。
レスを投稿する


ニューススポーツなんでも実況