1read 100read
2013年01月プログラム8: Perlについての質問箱 57箱目 (373) TOP カテ一覧 スレ一覧 2ch元 削除依頼
懐かしきベーマガの面白かった投稿プログラムを語る (774)
なぜポインタで引っかかる人が多いのか (1001)
Git 5 (341)
【コメント】doxygen【コンソメ】 (511)
【入門】Common Lisp その9【質問よろず】 (846)
ARToolKitでARを作ろう (253)

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


1 :2012/11/25 〜 最終レス :2013/01/16
CGI についての質問は板違いです。WEB プログラミング板でどうぞ。
CGI と Perl の区別がつかない人も WEB プログラミング板に行ってください。
(WEB プログラミング板: http://hibari.2ch.net/php/ )
このスレでは(CGI 以外の)純粋にPerlのみに関係する質問を取り扱っていこうと思います。
スレ違いの質問にはスルーか、速やかな誘導をお願いします。
PHP厨も荒らし沸きますがスルーしましょう。
質問すると叩き粘着されます、それがPHP厨です。
回答者が現れるまで待ちましょう。
"The duct tape of the Internet" こと、Perl についての質問箱です。
"There's more than one way to do it" ということで、
Perl の奥深さについて皆で語り合い、追求してまいりましょう。
http://www.perl.org/get.html
Download Latest Stable Source (5.16.0)
▼ 前スレ
Perlについての質問箱 56箱目
http://toro.2ch.net/test/read.cgi/tech/1348141100/
リンク集は >>2-3
Perl 日本語処理の基礎の基礎 >>4

2 :
[プログラミング自体の経験が無い奴はまずココを読め]
Perl プログラミング講座: ttp://www.site-cooler.com/kwl/perl/
[本]
リャマ: ttp://www.oreilly.co.jp/books/9784873114279/
駱駝: ttp://www.oreilly.co.jp/books/4873110963/
Effective Perl: ttp://www.amazon.co.jp/Effective-ASCII-Addison-Wesley-Programming/dp/4756130577
クックブック: ttp://www.oreilly.co.jp/books/4873112028/
Perl ベストプラクティス: ttp://www.oreilly.co.jp/books/4873113008/
Perl Hacks: ttp://www.oreilly.co.jp/books/9784873113142/
[オンラインマニュアル]
最新のドキュメント: ttp://search.cpan.org/dist/perl/
perldoc.jp: ttp://perldoc.jp/
perldoc.perl.org: ttp://perldoc.perl.org/

3 :
[モジュール]
CPAN.com: ttp://search.cpan.org/
河馬屋二千年堂: ttp://homepage3.nifty.com/hippo2000/
[テクニック]
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
[Perl 5.8 Unicodeメモ]
ttp://www.rwds.net/kuroita/program/Perl_unicode.html
ttp://www.namazu.org/~tsuchiya/perl/perl-5.8.html
ttp://www.lr.pi.titech.ac.jp/~abekawa/perl/perl_unicode.html

4 :
[プログラミング自体の経験が無い奴はまずココを読め]
Perl プログラミング講座: ttp://nyx.pu1.net/
[本]
リャマ: ttp://www.oreilly.co.jp/books/4873112575/
駱駝: ttp://www.oreilly.co.jp/books/4873112869/
Effective Perl: ttp://www.c-r.com/book/detail/888
クックブック: ttp://gihyo.jp/book/2012/978-4-7741-4972-1
Perl ベストプラクティス: ttp://www.oreilly.co.jp/books/9784873113425/
Perl Hacks: ttp://www.oreilly.co.jp/books/4873112915/
[オンラインマニュアル]
最新のドキュメント: ttp://blog.livedoor.jp/kumagai_nori/archives/52255109.html
perldoc.jp: ttp://bg.pi-ppi.com/
perldoc.perl.org: ttp://manual.xwd.jp/

5 :
# [Perl 日本語処理の基礎の基礎]
# このレスは、Windows の ActivePerl で日本語処理を行う場合のテンプレートです。
# このレスの内容をそのまま、UTF8 形式のソースファイルに保存して下さい。
# 入出力ともシフト JIS 形式のファイルまたは DOS 窓を想定しています。
# まず、以下の行を先頭に入れて下さい。
use utf8;
use open IO => ":encoding(cp932)";
binmode STDIN => ":encoding(cp932)";
binmode STDOUT => ":encoding(cp932)";
binmode STDERR => ":encoding(cp932)"; # ※1
use Encode;
# 次に、あなたが実行したい処理の内容を入れて下さい。
$file = 'C:/なんたら/かんたら.txt';
open my $fh, '<', encode("cp932", $file) or die $! ; # ※2
print <$fh>;
# 以上の内容は、日本語処理が解らない人でも、とりあえず日本語処理ができてしまう
# おまじないです。条件が異なる場合の対処方法は、ご自分で勉強して下さい。
# 【注】※1. の行を入れると、DOS 窓への日本語出力は簡便になりますが、
# ソースファイル名に非 ANSI 文字が含まれる場合に die 文の出力が失敗します。
# ※2. OS に渡す文字列(ファイル名,dos コマンドのオプションなど)は、
# この例のように cp932 でエンコードする必要があります。

6 :
>>1 修正
www.perl.org/get.html
Download Latest Stable Source (5.16.2)

7 :
>>5
このまどろっこしいのを1行で簡単に書けるといいね。
ついでに use strict; use warnings; もできるといいね。

8 :
扱うデータがすべてcp932なのにスクリプトをutf8で書こうとしてるせいだ

9 :
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

荒れまくってるうえにまともな回答がこないのでここでの質問は意味がありません。
今までご利用ありがとうございました。
質問のある方は以下のスレでお願いします。

スレ立てるまでもない質問はここで 122匹目
http://toro.2ch.net/test/read.cgi/tech/1351769173/

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

10 :
>>7
今は use 5.12.0; って書けば
use strictの効果があるよ。
http://blog.perlassociation.org/2010/04/perl5-12-0.html

11 :
>>10
だから何?
そういうことはTwitterでやろうね。

12 :
BrainfuckでPerl組もうぜ〜

13 :
>>11
断りますw
2ちゃんねるでもやりますよ。
俺のレスを見たくないのでしたら
どうぞこのスレを見ないでください。
俺はここから消えるつもりはないので、
あなたに残された手はそれだけです。

14 :
>>11
>>11

15 :
なるほど、ずっと荒らしてる基地害が>>13だったのか
まぁそんなに荒らしたいならこれからもここに書き込むといいよ

16 :
荒らしてるのは>>13一人じゃないと思う。

17 :
use encoding 'cp932'; # と書いてスクリプトもCP932で書いてみるテスト

18 :
>13は荒らしじゃなくね?
単に頭がおかしいだけっぽい

19 :
>>17
いける?

20 :
何とかなるんじゃないか

21 :
内部的にコード変換されてしまうなら思ってたのと違う
いろいろ問題あるっぽい

22 :
その問題の一つも書いてないゴミの言ってることを信じろと?
ゴミはゴミらしくROMってろ

23 :
質問です
ふんりゅうかと思って潰したら
例のにゅるにゅるしたものは出てこなくて肉片みたいのが出てきたんだけど
これは何ですか?

24 :
配列の要素をランダムに並びかえるにはどうやればいいんですか?
モジュールを使わない方法で教えて

25 :
ひとつの方法は、最後尾から順に、ランダムで選んだ前の場所と交換していく
コードは検証してないのでバグってるかも
for($n=$#a; $n>0; $n--){
$r=int rand ($n+1); #0〜$n
($a[$n], $a[$r]) = ($a[$r], $a[$n]);
}
終_______乱________←_______始
未未未……未未未★未未未……未未未☆済済済……済済済
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄┗━━━交換━━━┛
ちなみに敢えて自己交換の確率を確保しておかないと偏ってランダムにならない
@a=(0,1);で考えればわかる

26 :
>>24
http://perldoc.jp/docs/perl/5.14.1/perlfaq4.pod#How32do32I32shuffle32an32array32randomly63
or Fisher-Yatesでググる。

27 :
配列の要素と同じ数のユニークな乱数を作成し、乱数 => 要素番号のハッシュ
を作成する。そのハッシュのキーをソートしてキーに対応する要素番号順に
元の配列の要素を並べる。

28 :
内部的にコード変換されてしまうのが問題。encodingを使わなければ解決。

29 :
ああ、Twitterで回答もらってるのでもういいですよ

30 :
Twitterでもらったという回答も勉強のために見てみたいな。
URL貼って。

31 :
@array = sort { (rand < 0.5) ? -1 : 1 } @array;
こんな感じです。変数名は変えてありますが。

32 :
>>25
>ちなみに敢えて自己交換の確率を確保しておかないと偏ってランダムに
>ならない @a=(0,1);で考えればわかる
自己交換の確立の確保は int rand ($n+1) の +1 のことですか?

33 :
@test=("aaa","bbb","ccc","ddd","eee","fff");
@test = &Make_rand_array(@test);
print "@test";
sub Make_rand_array{
my(@array) = @_;
my(@rand_array,@rrr);
my(%www);
my($r,$n);
$r = @array;
@rrr = &Get_rand_no_zyuufuku_num_list($r);
$n = 0;
foreach(@array){
$m = $rrr[$n];
$www{$m} = $_;
$n++;
}
for($n=0;$n<$r;$n++){
push(@rand_array,$www{$n});
}
return(@rand_array);
}
続く

34 :
続き
sub Get_rand_no_zyuufuku_num_list{
my($max_n) = @_;
my($n,$m,$r);
my(@num_list,@rand_num_list);
$m = $max_n;
for($n=0;$n<$max_n;$n++){
push(@num_list,$n);
}
for($n=0;$n<$max_n;$n++){
$r = int( (rand(3)*100)%$m );
@splice_num_list = splice(@num_list,$r,1);
push(@rand_num_list,@splice_num_list);
$m--;
if($m<=0){
last;
}
}
return(@rand_num_list);
}

35 :
my @rand_sorted = ();
while(@array){
  push @rand_sorted, splice(@array,rand(@array),1);
}

36 :
@array = sort { rand <=> .5 } @array;
Twitterからの転載です。URLはごめんなさい。

37 :
@array = sort { -.5 + rand } @array;

38 :
http://ideone.com/Ni7koB

39 :
push @rand_sorted, splice(@array,rand(@array),1) while @array;

40 :
こうやってコードだけ書いていくゴミってコミュ障?

41 :
うーん
どちらかというと何の役に立つ情報も書けない>>40みたいなのの方がコミュ障っぽい気がするな

42 :
うーん
どちらかというと何の役に立つ情報も書けない>>41みたいなのの方がコミュ障っぽい気がするな

43 :
うーん
鸚鵡返ししかできない>>42みたいなのの方がコミュ障っぽい気がするな

44 :
うーん
どちらかというと何の役に立つ情報も書けない>>43みたいなのの方がコミュ障っぽい気がするな

45 :
コミュ障でも問題なく使えるavailabilityの高い言語、それがPerl。

46 :
>>44でも使えるPerlってすばらしいね

47 :
sort{rand<=>rand}@_

48 :
Perlが素晴らしいならPHPは神レベル

49 :
むしろ申レベル

50 :
Perlが人間だとするとPHPはチョン

51 :
# [Perl 日本語処理の基礎]
# このレスは、Windows の ActivePerl で日本語処理を行う場合のテンプレートです。
# このレスの内容をそのまま、シフト JIS 形式のソースファイルに保存して下さい。
# 入出力ともシフト JIS 形式のファイルまたは DOS 窓を想定しています。
# まず、以下の行を先頭に入れて下さい。
use Jcode;
# 次に、あなたが実行したい処理の内容を入れて下さい。
$file = 'C:/なんたら/かんたら.txt';
open my $fh, '<', $file or die $! ;
print <$fh>;
# 以上の内容は、日本語処理が解らない人でも、とりあえず日本語処理ができてしまう
# おまじないです。

52 :
Perlの起源は韓国!

53 :
韓国でもPerlって使われてるの?本とか出版されているの?オライリーとかあるの?

54 :
>>39はもっと評価されていい
検索すれば出てくるけど
>>53
韓国人はwhile暴走させて鯖ダウンさせてみんなに迷惑かけてそうだな

55 :
コードだけ書き捨てていくゴミみたいなコミュ力の>>39をどう評価しろって?w
ただのクズじゃんwww

56 :
質問でもなく回答でもない>>55のようなレスは今後スルーの方向で

57 :
つまり>>56をスルーすればいいのかな?

58 :
>>51はもっと評価してもいい>>5よりもシンプルで無理がない

59 :
ほんとだ
ウジ虫の>>56を個別あぼーんしたらスレの見通しがよくなった

60 :
質問します。
Perlのversionは5.16.1で、ActivePerlを用いています。
プログラムを実行すると、
Argument "@datas" isn't numeric in division (/) at 省略/GD/Graph/axestype.pm line 1488
Illegal division by zero at 省略/GD/Graph/axestype.pm line 1488
と、エラーがでてくるのですが、これは何を指しているのでしょうか?
axestype.pmの1488行目は、
return ($min,$max) unless $min/$max > 0 ;
となっています。

61 :
@datasが数字じゃねーよ!! isn't numeric
チャック・ノリスだけが零除算できる!!! division by zero

62 :
チャック・ノリス自重www

63 :
>>61
レスありがとう
@datasにテキストファイルに数字入れてあるものを格納してるんだけどその方法が間違っているのか…それじゃできないのか
初心者なもんですんません

64 :
>>60
エラーが出てるのにエラーが理解できないならプログラムは諦めろ
何のためのエラーメッセージだと思ってるんだ?
お前の頭の悪さは致命的

65 :
0を0.00にする

66 :
datasってのが英語的に間違ってるのがよくないと思うね

67 :
>>66
もし「Sというデータ」の意図なら、当然sdataとすべきだな。

68 :
>>63
> @datasにテキストファイルに数字入れてあるものを格納してるんだけど
その数字は半角でないとエラー出ると思うけどそのへんは大丈夫なのかな
> axestype.pmの1488行目は、
なんてのを見るとちょっと嫌な予感がするんだけど

69 :
大丈夫だろ。
初心者を言い訳にしてるゴミ>>63のコードが動こうが動くまいが社会には何の影響もない。
初心者を言い訳にしてる奴って社会に必要ないからね。
必要ない=ゴミ。
両親の顔想像できる?
それ、ガキ一人まともに教育できないくせにRしまくったゴミ生産機だから。

70 :
>>63
>@datasにテキストファイルに数字入れてあるものを格納してるんだけどその方法が間違っているのか…それじゃできないのか
open()でそのファイルをオープンして、ファイルの内容を読む必要がある

71 :
また初心者名乗ってる馬鹿が来たのかw
一生言ってろwwwそれがお似合いwwwww

72 :
何か知らんがものすごい叩きっぷりだな
んじゃ俺はどこぞでゴミコードばらまくとしますかね

73 :
@datasに入れるのはファイル名ではなくて、数字そのものにしないといけない
はっきり言って、自分自身のニーズで組んでないでしょ?学校の宿題なんでしょ?

74 :
そういえばスパコンでゼロ除算してハングさせたことがあったっけ
なつかしい思い出だ

75 :
スーパーもコンビニもいまじゃあ、ほとんどPOSシステムだからなあ

76 :
$min/$max > 0 ; って $min * $max > 0 ; と同じことだろ?
なぜ割り算に?
@datas にファイルから数字列を拾って格納したということなら\r|\nが残っていないか?
割っちゃいかんというんだから$maxに何が入ってるか表示させてみ

77 :
1行目がよくわからないのですが。

78 :
a/bの符号はabの符号に一致するやん
それがわからないなら中1からやり直そう

79 :
メンバ変数がメソッドの外で宣言されているインサイドオブジェクトの継承ってどうやるの

80 :
インサイドオブジェクトってなんぞ

81 :
ゼロで割ると結果はゼロになるとかならないとかゆとりとか脱ゆとりとか

82 :
インサイドアウトオブジェクト

83 :
オフサイドオブジェクト

84 :
baseでもparentでも使って、普通に継承できるっしょ。

85 :
http://blog.livedoor.jp/dankogai/archives/50783623.html

86 :
Perldocにあるよ。
http://perldoc.perl.org/perlobj.html#Inside-Out-objects

87 :
>>85
ブログの宣伝キチガイ乙

88 :
ゼロにはプラスのゼロとマイナスのゼロがあるとかないとか円周率は3とか符号のないぴったりゼロとか

89 :
Windows 8 (64bit)にActive Perlをインストールしたのですが
コマンドラインから操作できません
C:\>perl -v
This is perl 5, version 16, subversion 1 (v5.16.1) built for MSWin32-x64-multi-
hread
(以下省略)
D:\>perl -e 'print "Hello World\n"'
Can't find string terminator "'" anywhere before EOF at -e line 1.
他のワンライナーを入れてもみんな「'」がないよ
というエラーメッセージになります
ファイルに書いたプログラムはちゃんと実行できるのですが
何が悪いのでしょう?

90 :
例えば
>perl -le'$i=$_,print map"$i$_ ",@!for@!=(0..9,A..F)'
動かない
>perl -le"$i=$_,print map qq($i$_ ),@!for@!=(0..9,A..F)"
動く

つまり
・'' ではなく "" で囲む
・"" は qq() にする
すると下になり、
これは動く
>perl -e "print qq(Hello World\n)"

91 :
>>90
Windowsってことはコマンドプロンプトだろ?
ならコマンドプロンプトに合わせた
クォートやエスケープをしないといかんよ。

92 :
>>90
そういう基本の分かってないゴミはPerl以前の問題
ゴミが何で調子に乗ってPerlなんかに手を出したんだろうな

93 :
>>92
今日も寂しそうだなお前
まあそのうちいいことも…ないわ

94 :
自己紹介乙。

95 :
wwwwwwwwwwwwwwwwwwwwww

96 :
89番です
90番さん
ありがとうございました
書いていただいたやり方でちゃんと動きました
91番さん
Windowsのコマンドプロンプトはそれなりの流儀があるんですね
92番さん
すみません LinuxやCygWinではちゃんと動いていたので焦って
しまいました

97 :
レスアンカーのつけかた
半角の不等号を2個入力して、その直後に半角数字をかきます
自動的にあおくなります

98 :
頭の悪い>>96には言うだけ無駄
まともな精神構造なら他のレスからそのくらい推察できる

99 :
"シェル" も知らずにLinuxやCygWin使ってたとするとむしろおどろき
どういういきさつでPerlを使うようになったのか興味しんしん

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼
【C++】 DirectX初心者質問スレ Part37 【C】 (552)
関数型プログラミング言語Haskell Part20 (926)
iPhone iPad iOSプログラミング Part1 (644)
datファイルを共有するP2Pソフト o2on 17dat (380)
MFC、Win32++を超えるライブラリを作るスレ (962)
Visual Studio IDE環境 (568)
--log9.info------------------
■■■■■吹連の西関東優遇を許すな!7■■■■■ (906)
鳥取の大学職場一般 パート2 (755)
鳥取の中学 パート5 (863)
鳥取の高校 パート5 (956)
福井の大学職場一般 パート3 (744)
青森の高校 その9 (492)
マーO総合スレ part21 (507)
四国の中学 総合スレ Part4 (445)
職場は廃止されたし、次に廃止されるのは大学だよな (912)
★★★★★★★★祝・東京代表3校★★★★★★★★ (253)
秋田の大学職場一般♪Part4 (805)
和歌山の高校 vol.3 (738)
いかにもありそうなタイトルの吹奏楽曲 2 (581)
北海道の大学☆Part8 (876)
東北の高校 総合スレ Part16 (786)
東北の中学 総合スレ Part7 (473)
--log55.com------------------
【アニメキャラ】モッピー知っているよ【の秘密】
いろんなキャラが志筑仁美&上条恭介に一言
【暗殺教室】椚ヶ丘中学校3年E組の男女カプを語るスレ6
遊戯王 DM・GX・5D's・ZEXAL・ARC-V 強さ議論スレPart43
遊戯王 DM・GX・5D's・ZEXAL・ARC-V 強さ議論スレPart42
ローゼンメイデン強さ議論スレ
遊戯王 DM・GX・5D's・ZEXAL・ARC-V 強さ議論スレPart41
【Fate/stay night】衛宮士郎×セイバーを語るスレ