TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼
スレ立てるまでもない質問はここで 148匹目
最も美しいプログラミング言語は? Part6
Tapestryについて語ろうよ!
【統計分析】機械学習・データマイニング28
a4です。P2P人工知能「T」開発。
プログラミング言語の難易度ランク作りました ご覧ください
3Dアルゴリズム全般
PowerShell -Part 4
Flutterやろうよ!!!
VisualBasic6.0 対 VisualBasic .NET 2003

Perl初心者スレ(マジレス回答)


1 :2012/10/07 〜 最終レス :2019/08/31
どうぞー

2 :
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
                  京都大学霊長類研究所

3 :
>>1
おつ!
ありがとうございます

4 :
マジレス?
じゃあ遠慮なく
>>1
板荒らすために立てたんじゃないならさっさと削除依頼しろクズ
本スレでさえ閑古鳥が鳴いてるのに次スレ立てるから荒らし予備軍の温床になってんだよ
今日の糞スレ乱立を見ればわかるだろ

5 :
■関連スレ
在日韓国人プログラミング
http://toro.2ch.sc/test/read.cgi/tech/1349527575/
チョッパリは謝罪しる!
http://toro.2ch.sc/test/read.cgi/tech/1349527506/
おちんちんを入れてください
http://toro.2ch.sc/test/read.cgi/tech/1349527445/
ほむらたんをあいしてる
http://toro.2ch.sc/test/read.cgi/tech/1349518465/
我らPGにしてPGにあらず
http://toro.2ch.sc/test/read.cgi/tech/1349518997/
おちんちんを入れる
http://toro.2ch.sc/test/read.cgi/tech/1349518715/

6 :
■関連スレその2
カチャカチャPGの叫び
http://toro.2ch.sc/test/read.cgi/tech/1349518930/
プログラマー=キチガイ
http://toro.2ch.sc/test/read.cgi/tech/1349518840/
チンパンジーの舞
http://toro.2ch.sc/test/read.cgi/tech/1349516893/
今、ム板に必要なのはIDより板の設定変更
http://toro.2ch.sc/test/read.cgi/tech/1349513203/
こんにちはみなさん。
http://toro.2ch.sc/test/read.cgi/tech/1349503990/

7 :
>>1
基地害乙

8 :
初心者なので 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

9 :
# [Perl 日本語処理の基礎の基礎]
# まず、以下の行を先頭に入れて下さい。
use utf8;
use open IO => ":encoding(cp932)";
binmode STDIN => ":encoding(cp932)";
binmode STDOUT => ":encoding(cp932)";
binmode STDERR => ":encoding(cp932)";
use Encode;
# 以上の内容は、日本語処理が解らない人でも、とりあえず日本語処理ができてしまう
# おまじないです。

10 :
上記の記述は1行で書くこともできます。
use encoding 'cp932'; # [Perl 日本語処理]
初心者にはこれが一番あってると思います。
徐々に経験を積んで、難しい記述にチャレンジしていきましょう。

11 :
そもそもプログラム初心者にPerl選択などありえない

12 :
初めてのPerl第6版と赤らくだ本は分量的にも内容的にもほぼ同じだしな

13 :
ここは本スレではありません。
こちらへどうぞ。
Perlについての質問箱 56箱目
http://toro.2ch.sc/test/read.cgi/tech/1348141100/

14 :
↑ながらく機能していない上にCGIの質問をすると怒られます。
 Perlの質問をするとPHPの回答が返ってきます。
 それでも構わないなら、どうぞ。

15 :
やっぱりPHPの方がいいんですかね。

16 :
プログラム初心者じゃなくてPerl初心者な。PHPは卒業な。

17 :
■関連スレ
おちんちんランド開園
http://toro.2ch.sc/test/read.cgi/tech/1349453856/
ム板を荒らしている連中の正体
http://toro.2ch.sc/test/read.cgi/tech/1349260204/
おちんちんを舐めよう
http://toro.2ch.sc/test/read.cgi/tech/1349454008/
ム板住民に言いたい1000のこと
http://toro.2ch.sc/test/read.cgi/tech/1349192669/
低級言語のすばらしさ
http://toro.2ch.sc/test/read.cgi/tech/1349496941/
 
http://toro.2ch.sc/test/read.cgi/tech/1349502749/
ム板の住民構成
http://toro.2ch.sc/test/read.cgi/tech/1349453824/

18 :
PHPでいう、in_arrayは
Perlではなんて関数ですか?

19 :
grepでいいんじゃないか?UNIXの文化な

20 :
>>19
ありがとうございます。
それからもうひとつ、
array_uniqueに相当する関数はどれでしょうか?

21 :
ハッシュのキーにして、最後にキーを取り出す

22 :
my %uniq = map { $_ => 1 } @array;
my @array_uniq = keys %uniq;

23 :
長いな。

24 :
初心者に変なもん奨めるんじゃないぞ

25 :
%u = map {$_,1} @a;
@u = keys %u;
#チヂメテミタ

26 :
my @array_unique = keys %{{map {$_,1} @array}};
perl 5.14 以降なら
my @array_unique = keys {map {$_,1} @array};

27 :
ひと頃List::Utilが湧いたのはPHPとの比較が原因か

28 :
>>26
なんかバッドノウハウ臭が強いな。

29 :
んなこたあない。

30 :
ここでList::Utilを持ち出し、直後からスレが荒れるのが定番。

31 :
あるサイトにアクセスして数値を取得してreturn $num;で値を返す関数を作ったとします
get_num();
my $num=200
while(1)
{
if(new_num() >=$num)
{
okと表示
}
}
okがうまく表示されません
毎回get_numでサイトにアクセスして取得しているというのが悪いんでしょうか?原因がわかりません教えてください

32 :
new_num()で取得した値は $numより大きいです
大きいのになぜか比較されずにスルーで何も表示されずループです

33 :
>あるサイトにアクセスして数値を取得してreturn $num;で値を返す関数を作ったとします
↑これは get_num() のことですか?new_num() のことですか?
get_num() は return $num; しないんですか?戻ってきた値は使わないんですか?
>毎回get_numでサイトにアクセスして
↑ get_num() は while の中にありませんが、この外にループがあるんですか?

34 :
use strict; 落ちか
腕を上げたようだな、モダンPerl。

35 :
>>31
$|=1;
それかprint "ok\n";
改行いれとけ

36 :
改行入れてもループは終わらんだろw

37 :
>>31
マジレスすると
お前みたいな低脳には無理

38 :
荒らしの連立てしたスレを伸ばそうとしてる>>31は荒らし
消えろやゴミが

39 :
>>37=>>38

40 :
>>37=>>38=>>39

41 :
>>31=>>39

42 :
$|=1;
my $num=200; ←セミコロン忘れるな
while(1){
  if(get_num() >= $num){ ← get_num()、な
    print "ok\n"; ← うるせぇやつがいるから改行、な
    last; ← これなけりゃ無限ループだわな
  }
  sleep(60); ← Web にアクセスするなら忘れるんじゃねぇぞ
}

43 :
なんで>>31みたいなカスがプログラミングなんかに手を出したのか疑問。

44 :
>>43
そんなのが疑問になるのは
お前が馬鹿だからじゃないだろうか。

45 :
>>43=>>44=>>37=>>38

46 :
>>43=>>44=>>37=>>38=>>31=>>45

47 :
文字列 $str の末尾の「.cpp」を「.o」に置換し新たな文字列 $new_str を生成したいのですが
s/// だと元文字列を書き換えてしまいます
コピーしてから置換でも良いのですが、書き換えずに置換する関数や演算子はないでしょうか?

48 :
>>47
寝言は寝て言えキチガイ

49 :
>>44=>>48

50 :
>>47のような害虫はム板から駆除しなければならない。

51 :
>>47
s/// に /r を指定するとよろし

52 :
>>47
演算子一覧くらい検索すればいくらでも出てくるだろ
それすら検索できないって本物の精神異常?

53 :
>>47はプログラミングに向いてない。

54 :
煽り叩きに加えて今度はイコール厨まで参戦ですか
ほんとスレの空気を悪くすることに関しては息ぴったりですねお前ら

55 :
このスレは>>31>>47叩き基地害イコール厨等まともじゃない奴らの隔離スレだからな。

56 :
>>51
ありがとうございました
手元の資料に無かったので調べたら割と最近の仕様みたいですね

57 :
>>56
いいから二度と来るなよ

58 :
>>57
さっさと初心者を卒業しろよってことかな?
出所者を見送る看守のようだ。

59 :
>>57
来ちゃいました
テヘペロ♪

60 :
>>47はマジでクズ
2chを代理検索か何かと勘違いしてないか?

61 :
質問してこういう扱いうけて荒らしてるのかこの粘着くんはw

62 :
>>35
うまく出力されました
$|=1;とは何ですか?
改行の理由も教えてください
>>42
$|=1;をつける理由は?
lastだとループが終わってしまうので

63 :
>>32
>大きいのになぜか比較されずにスルーで何も表示されずループです
ループして困っているのか、ループしたいのか質問をはっきりしろ

64 :
>書き換えずに置換する
何をしたいのか

65 :
こういう糞みたいな質問してる連中がム板のレベルを下げてる

66 :
馬鹿の>>63-64が釣れたwww
マジ釣り掘りwwwww

67 :
>>61
荒らしは質問すらしてないよ。
質問者になりすましての煽りは入れてるが。

68 :
何で分かるの?
あ、ご本人様ですか。
荒らしもやりながらこんな場末の糞スレチェックまでご苦労様です。

69 :
プロキシのレスポンスタイム計るにはどうするの?
教えてくれ
6.5s
5,8sとかあるだろ?あれ

70 :
それはPerl限定の話でもなさそうだし、流石にWebProg板で聞いてくれ

71 :
PHPでいうマジッククォートみたいなのない?
sjisで送信するとき表とかがエスケープされずにエラーでちゃうんだけど
自動でエスケープしてくれる関数みたいなの無いの?
教えてください

72 :
自分で調べられないお前にはPHPがお似合いだ

73 :
>>71
ふたつのことを混同してしまってると思われる
「Perl XSS対策」「Perl Unicode」でそれぞれググれ
そして前者(XSS)にに関しては今後はWebProgへどうぞ

74 :
>>71=基地害

75 :
>>71
Sjisいれろ
http://search.cpan.org/~ina/Char-Sjis/

76 :
>>72-74
追い出すなって。
ここは>>71みたいな社会のゴミ用隔離スレなんだからさ。

77 :
PHPのマジッククォートとSjisっておんなじものなのか?
微妙にやること違うと思うぞw

78 :
初心者でUnicodeはきついかもな
ごちゃごちゃしてて何がなんだかさっぱり分かんない
初心者にはshiftjisがいい

79 :
Perlスレの頭にUnicode絡みのテンプレなかったっけ

80 :
require 'jcode.pl';
だっけ?

81 :
>>80
確信ないなら書くなゴミ
さっさと失せろキメェんだよ

82 :
>>9 「use Encode; 」

83 :
それ言うなら use utf8; だろ
EncodeはUnicode以外だって扱えるんだから
でも牙が伸び過ぎると自滅してしまうこともある
ttp://blog.nakatanigo.net/archives/50474313.html

84 :
>>80は頭がおかしい。

85 :
>>82
ありがとうそこにあったのか

86 :
>>80
もう来なくてもいいよ

87 :
>>80=ゴミクズ

88 :
いつもの基地外は本スレに行けよ

89 :
↑はい、いつものキチガイ入りましたー

90 :
88はいつもただの質問者を荒し扱いしたりしてる奴だろう、放置よろ。

91 :
>>80
それです。サンクスダアイナ

92 :
初心者の彼女がjacode.pl使ってて時代の変化を感じた

93 :
いつまでもEncodeでエンコしててもしょうがないしな

94 :
ttp://kotobank.jp/word/えんこ

95 :
ActivePerl5.16.1使用中です。
---
print DAT @dat;
---
このようにして配列を書き出そうとしたのですが
なぜかテキストファイルに繁栄されません。
何か情報をご存知の方いらっしゃいませんか?

96 :
ファイルハンドルであろうDATのopen文はいかに

97 :
以下の一行スクリプトに文字を食わせて「XX月◯◯日のお知らせ!」の次の行から「-----」の前までを取り出そうとしています。
最期のs/^ +//は各行の先頭の全角の空白を取ろうとしたのですが、これが働きません。が、抜き取り自体は成功していました。
逆に、use utf8とすると/正規表現/が全くひっかかりらず何もprintされません。
perl -e '
#use utf8;
while (<>)
{
if (/\d+月\d+日のお知らせ!/) { last; };
#skip the line;
};
while (<>)
{
if (/-----/) { last; };
s/^\s+//;
s/^ +//;
print;
}'

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

99 :
どうもです。
状況なのですが、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;だけ殺して一見うまく動いているのでそれで利用を開始しました。
個人の趣味の自動化目的なのでそんな感じでまずはゴーしてしまいます。

100 :
utf8プラグマは作ったひとは使うのが簡単だと考えているんだろうけど、
使うひとにとっては非常に難しい。こういった処理モデルを理解しろと
いうほうに無理がある。結論としてはutf8プラグマは使わないほうが
よい。

101 :
もう省略の美学とか無くていいから(涙)
ぜんぜん意味がわからない
たすけて

102 :
utf8にはまるのは日本固有らしい。海外では当初から見切りをつけていて
使われることはない。

103 :
この方法で重複を削除した場合
リストの順番は変更されますか。
それとも、重複が削除されるだけで、
順番はそのままですか。
my %hash = ();
foreach (@list) {
$hash{$_}++;
}
my @unique = keys %hash;
print @unique;
ご教示ください。

104 :
The keys of a hash are returned in an apparently random order.
ハッシュのキーはランダムな順番で返されます(適当訳)
http://perldoc.perl.org/functions/keys.html

105 :
ゲーッ
ありがとうございました・・・

106 :
フリーソフトの利用は自己責任。
utf8作ったひとが助けてくれるわけじゃない。
自分の理解できる範囲内で使えってこった。

107 :
文字コードとしてのUTF-8を理解してもutf8プラグマの挙動は別物
オレオレ実装むき出しの仕様で理解できず使いづらい
そこで省略の美学になる

108 :
至らない実装は利用者が補えるが、オレオレ仕様は直せない、か

109 :
2chのソースコード読みたい
どっかに落ちてないかな?

110 :
クレクレ厨か糞がキメェんだよ

111 :
KENT本の中に似た外見のBBSってなかったっけ?

112 :
「?」じゃねーだろ確認して書き込めやゴミが

113 :
>>112
おまえ、うるさい!!

114 :
>>112
糞スレ乱立してた基地害が立てたスレの一つで何言ってんの?
ここは落書き帳だよ?

115 :
www.kent-web.com/bbs/
「2ch風」のマルチスレッド式掲示板です。トリップ機能、age/sage機能、
ID表示機能などが可能です。また表示部分をテンプレートファイルとし、
ユーザサイドでのレイアウト改造やデザイ改造が容易です。

116 :
サイトの宣伝乙

117 :
>>115
宣伝ウザい

118 :
>>115
こんなところに来てまでステマとかマジで気持ち悪いよお前
アタマおかしいんじゃねーの

119 :
>>109に回答するのが初心者スレのみっちょんだから

120 :
CGIの紹介はスレ違い
本当にここには基地害しか残ってないんだな

121 :
>>120
残って?
スレ間違えてますよ

122 :
>>120
お前、CGI知らないのか?
Common Gateway Interface(コモン・ゲートウェイ・インタフェース、
CGI)は、ウェブサーバ上でユーザプログラムを動作させるための仕組み。
件の掲示板を実現しているプログラムはPerlスクリプトだぞ?
CGIとPerlスクリプトの違いも分からないのか?

123 :
>>122の言ってることは分かるがなぜここでそれを言うのか分からない。

124 :
ここはゴミの隔離スレだからね

125 :
>>123
落書き帳と同じだから必ずしも会話が成立してる必要はないんだよ
発作的に書きたくなった内容を書き殴ればいい
このスレにいるのは心を病んでる奴がほとんどだからまともに相手してるとこっちまで病むぞ

126 :
>>120
ばかだな、お前以外におれがいることを忘れているぞ

127 :
アルパカ本ってどうよ?
リャマ本ほど人気ないみたいだけど

128 :
リャマ本をこなしてアルパカ本に進むわけだから当然脱落者がいるわな
リャマ本⇒らくだ本⇒アルパカ本

129 :
>>128
え?
らくだ本が間に入る?
あれは上級者向きの本だお

130 :
うるさいゴミ
お前が勝手に勘違いしてるだけだクズ
キメェから勘違い野郎は書き込むな

131 :
はたして>>124>>130のどちらが正しいのか

132 :
このスレ、気持ち悪いな
Perl使いにも、>>130みたいな気持ち悪い奴が多いから納得

133 :
荒らしが立てたスレだしな。
本スレはこっち。
Perlについての質問箱 57箱目
http://toro.2ch.sc/test/read.cgi/tech/1353805857/

134 :
そもそも今のム板にPerlスレ立てること自体荒らし行為

135 :
WEBプログラミング@2ch掲示板でも荒らされてるぞ
3 名前:nobodyさん 投稿日:2013/01/19(土) 02:52:02.33 ID:???
カップ麺スレ増殖中・・・

4 名前:nobodyさん 投稿日:2013/01/19(土) 03:47:52.32 ID:???
とんこつ系のインスタント麺で一番旨いのってどれだろう?
あのカップに入ってるちょっと高めのやつって実は値段ほど美味しくない
http://kohada.2ch.sc/test/read.cgi/php/1358518487/3-4 Perlコーディング初心者質問スレ Part 67

136 :
WEBプログラミング@2ch掲示板でも荒らされてる
3 名前:nobodyさん 投稿日:2013/01/17(木) 04:27:37.19 ID:???
またラーメンスレかw

5 名前:nobodyさん 投稿日:2013/01/18(金) 23:16:14.71 ID:???
>>4
どうせ暇でしょ?
全てのスレを食べ物の話題で
埋めたらいいやん?
http://kohada.2ch.sc/test/read.cgi/php/1358342748/3-5 Perlコーディング初心者質問スレ Part 66

137 :
WEBプログラミング@2ch掲示板でも

4 名前:nobodyさん 投稿日:2013/01/16(水) 03:05:27.12 ID:???
カップ麺スレ

5 名前:nobodyさん 投稿日:2013/01/16(水) 04:54:54.33 ID:???
<前スレで出た話題>
カップラーメン
カップ焼きそば
ユーリンチー
カレー
水分の多い食品に揚げ物を入れる件
くずもち
その他詳細などについては>>1のリンクを参照

6 名前:nobodyさん 投稿日:2013/01/16(水) 20:45:34.73 ID:???
高級な料理や食品に関しての話題が出ないわけだがw
http://kohada.2ch.sc/test/read.cgi/php/1358196208/4-6 Perlコーディング初心者質問スレ Part 65

138 :
WEBプログラミング@2ch掲示板で
631 名前:nobodyさん 投稿日:2013/01/14(月) 19:39:50.81 ID:???
>>627
ちゃんとしたワンタンを加えるともっと旨くなるぞ

632 名前:nobodyさん 投稿日:2013/01/14(月) 23:23:04.38 ID:???
餃子とかでいいんじゃね

633 名前:nobodyさん 投稿日:2013/01/14(月) 23:42:44.97 ID:???
ラーメン屋のラーメンに入ってるチャーシューとスーパーで売ってるチャーシューって全然違うよな。
スーパーで買ってきたチャーシューってハムとラーメン屋のチャーシューの中間っぽい。
スーパーで普通のチャーシューも売って欲しいわ。

634 名前:nobodyさん 投稿日:2013/01/15(火) 17:00:15.77 ID:+UlCw0lP
お前らってラーメン+ライスとかいける派?
俺はとんこつラーメンに限りいける

635 名前:nobodyさん 投稿日:2013/01/18(金) 19:15:41.39 ID:???
お好み焼きをおかずにご飯を食べる人種もいるらしい。
http://kohada.2ch.sc/test/read.cgi/php/1343668425/631-635 Perlコーディング初心者質問スレ Part 64

139 :
Perl自体がオワコンなのにスレを立てることが間違ってる。
特に新しくPerlを学ぼうなんて正気の沙汰じゃないんだから初心者スレは不要。
せいぜい昔のPerlで作られたシステムの保守をやらされてるSE土方が情報交換するくらいだろ。

140 :
昔のPerlも覚えられず、かといって新しいPerlも覚えられない。
悔しいんですね?分かります。

141 :
あのぷっくりサスペンダーのおじさんもオワコンなの?最近見ないけど

142 :
Perl最強

143 :
荒らしが立てたスレ

144 :
古いPerlだと新しいソフトが書けないと考えるひとがいるようですね。
たいした仕事できなさそう。

145 :
どっちにしてもPerlはオワコン
PHPがここまで進化しちゃうとPerlの存在価値はどこにあるんでちゅかねーw

146 :
>>145
ワンライナー

147 :
ごった煮の点で、PHPもPerlににている → Perlとおなじような運命だろう

148 :
PHPっていうとWebアプリしか書けないイメージがある
PerlはC言語/シェルスクリプトが担っていた分野をカバーしているので
今後も使われていくだろう
Perlがオワコン説は単に初心者プログラマの脱落を意味しているだけで
もともと使っていたシステム管理者らが使うのをやめることはない

149 :
PerlっていうとWebアプリしか書けないイメージがある
PHPは当初よりかなり進化しているので
今後も使われていくだろう
Perlがオワコン説は初心者プログラマがPerlを選らばないとう現実を意味しているから
もともと使っていた老害が使い続けるだけという結末になる

150 :
PerlもPHPもどちらも書いてると、PHPの方がクソだと思えてくる。

151 :
Perlっていうとぷっくりサスペンダーのおじさんのイメージがある
ときどきアニメを例えに使うあのなぞなぞ好きなおじさんだ
甲高い声が人気なので今後も使われていくだろう
Perlがオワコン説はWindowsユーザがPerlを選ばなくなったとう現実を意味しているから
もともと使っていたJperlを使い続けるしかないということになる

152 :
perlからC言語で作った実行ファイルを実行するときC言語のソースが
printf("A");
scanf(); ---Bを入力
printf("C");
のときにこの実行ファイル実行結果ををperlで受け取るときperl側で
ACとなってしまいます。
これを
AB
C
として受け取りたいのですがどうすればいいでしょうか?

153 :
>>152
scanf()で受け取った文字列をprintf()してはダメなの?

154 :
>>152
自分で調べろよゴミが
そもそもここはスレ立て荒らしが立てたスレだ

155 :
>>152
お前みたいな馬鹿にプログラム組んでもらわなくても誰も困らないからさっさと回線切れ。

156 :
なんで自分で調べられないん?

157 :
>>152
基礎もできてないゴミの癖にうざい

158 :
futomi's CGI Cafeの「清き一票!(投票CGI)」というフリーのCGIを元に投票項目を増やしたいのですが、HTMLの方で増やしたname属性をCGIの方に反映させる方法がわかりません。
もう2週間ほどPerlについて書いてあるページを調べ回りながら試行錯誤を繰り返しているのですが、どこをどういじればいいのかよくわかりません...
ヒントだけでもいいので教えてください。お願いします。

159 :
何で作った奴にきかずに赤の他人にきいてんだ?
しかもタダで教えろとか本当にゴミだなお前。
回線切れ乞食。

160 :
>>159
すみません。
2004年に配布されたもので結構昔のものなので製作者様の方に教えてもらうことができなくて、ここなら何かヒントになることだけでも教えていただけると思ったので...

161 :
>>160
Perlを最初から勉強すればすむ話だろゴミ
それにそれが情報乞食をする理由になるの?
本当に乞食じゃねぇのこいつ

162 :
>>160
Perlを使いこなすために書籍に何万と投資をし、書籍を読んだりコードを書いたりするのに何年と時間を投資し、
そうやって身に付けたものをお前みたいなクズにタダで使う理由は?

163 :
投票項目の多いCGIプログラムを入手するのが目的なのか、Perlのスキルを
高めたいのかどっちなんだ?

164 :
READMEに全部書いてあったわ、ネタか

165 :
思ったほど釣れなかった

166 :
いつものキチガイしかいないしな

167 :
Perlの本質

168 :
モダンPerlの本質、な。そこ混同しないように。

169 :
モダンPerlを勧めるひとは熱心なあまりキチガイみたいに見えてしまうってこと?
でも本来のキチガイとは違って、モダンPerlやめれば症状が改善されるんだよね?

170 :
>>169
ゴミは黙ってろ

171 :
改善された例を見たことがない。キチガイは自滅してオワコンだ。

172 :
俺は間違っちゃいない!世界が間違ってるんだ!
永遠に叫び続ければいいよ。

173 :
perl覚えたけど使い道が無い

174 :
Sublime2 TextからPerl実行出来るようにしてるが頗る便利
テキストの処理がいつでも出来る
それとフォルダ毎にzip圧縮するときなんかに使ってるわ
D&Dするようなアプリだとフォルダまとめて圧縮しちまうからな

175 :
print は引数を省略できるけど、
join は引数を省略できない
どの関数は どの引数を省略できるのか
省略した時はなにがあてはまるのか
の標準関数の分の一覧ってある?

176 :
ぬおおperldoc.jpさんありがとおおお!!

177 :
プログラミングPerl 改訂版 ママゾンだと1円です

178 :
>>176
Twitterでやれ低知能

179 :
標準出力を乗っ取る機能ある?
普通にprintしてもフィアルに書き出すみたいなやつ

180 :
>>179
それって普通リダイレクトでやるもんじゃないの?
そもそも標準出力=「画面とは限らない」ものなんだから

181 :
そもそもフィアルってなんだ?
異次元デバイス?

182 :
>>179
あるよ

183 :
質問かと思ったらただの精神異常だった件。

184 :
>>179
ttp://perldoc.jp/func/select

185 :
>>182
ありがとう
STDOUTだったわ

186 :
>>185
二度と来るな

187 :
ただの不備を精神異常とか二度と来るなとか罵るのもどうなのよ
だから過疎ってんだよ

188 :
という精神異常者の意見。

189 :
>>187
Perl関連スレ、何故か荒らしが住み着いてるからなあ

190 :
自分が昔書いたプログラムの
a{\%$b}=c
の意味がわかりません

191 :
失礼しました正確には
$self->{a}{\%$b}=$c
でした。助けてください。

192 :
>>190-191
マジレススレだからマジレスすると、書き込み前の確認すらできないほど頭の悪い奴にプログラミングは向いてない。
早く回線切れ。

193 :
ごみがまたパールの保守性の低さを証明してくれましたw
PHPだとこういった事態の発生する可能性がパールより低い
保守性を考えるならPHP

194 :
>>190
ウザい

195 :
Perlの場合は、保守性を考えると非・オブジェクト指向のほうがいいよ
 $self->{a}{\%$b}=$c
は分かりやすくすると
 $self->{'a'}->{$b} = $c
になる
ただ $b は本当にハッシュのリファレンスなの?

196 :
質問に質問で返す愚図

197 :
>>195はコードも読めないのに住み着いてるのか・・・

198 :
あ、>>195であってたw、俺が読めてなかった、ごめんw

199 :
最近はこういう有象無象しかいないの?

200 :
>>195を貶めてる奴らも
回答できてない時点で同レベル

201 :
Perlなんか使ってる時点でw
☆統計開始以降利用人口史上最低記録絶賛更新中☆
ttp://www.tiobe.com/index.php/content/paperinfo/tpci/Perl.html

202 :
ちろべとかどうせ海外の話でしょ、ひまわりが載ってないしw

203 :
韓国も入ってないだろうな。
韓国ではRubyよりPerlのほうが圧倒的に人気だから
そんなIT人口の多いIT先進国のデータが入ってたら絶対Perlのほうが上位に来るよ。

204 :
韓国では何をきっかけにPerl人口が増えたの?例えばO'Reillyとかは韓国語版を
出していないよね?韓国のひとは何を使って勉強したの?教えてえろいひと

205 :
>>195
ありがとうございます。それをヒントに少し思い出してきたかも。

206 :
こういうクズがコミュニティの足引っ張ってんだよな

207 :
>>205
迷惑がられてる自覚はないわけね。

208 :
そう言ってるだけのお前も迷惑がられてる自覚はないわけね

209 :
荒らせればオウム返しでも何でもいいんだな

210 :
俺も荒らし…まあそうだろうなあ、自覚は無いようだけどお前も荒らしだよ?

211 :
ここは常に罵りあってる気持ちのよいスレッドですね
初心者も質問しやすくて大変良い雰囲気だと思います

212 :
>>190みたいな奴がそうなるように
仕向けてるんだよ。

213 :
リファレンスをハッシュのキーに使ってもいいの?何か間違えてない?

214 :
>>213
ドキュメントも読めないのかゴミ

215 :
そもそもPerlを選択する時点でかなり間違えちゃってるから別にいいんじゃね?w
大元で間違ってるのに枝葉の間違いばかり気にする馬鹿ってたまにいるよな。
中国産の野菜は農薬が酷いが、中国産のキャベツと中国産の白菜のどっちが安全か考える馬鹿。
そもそも中国産の野菜を選ぶ時点で間違ってると気付かない馬鹿。
低所得で納税額の少ない社会のお荷物に多い傾向。

216 :
>>215
馬鹿というより向上心がないんでしょ
一つ言語を覚えたらそこに落ち着いてしまうタイプだと思われ

217 :
向上心のない奴は何やっても駄目、他人に懇切丁寧に教えてもらって半人前とかね
居残りさせられて先生がつきっきりで人一倍教えてるのに50点しか取れない奴いただろ

218 :
新たにPerl覚える人間が居ないとでも?
良く出来たツールだと思うよ、ホント

219 :
Perlを覚えられないひとのためにできたのがPHP。PHPはPerlの機能限定版。
だからCGIにしか使えない。

220 :
流石に、PHPをCGIで使う例は稀かと

221 :
>>220
>>221みたいな認識でPHPを否定してPerlを使い続けてるのがPerl厨なんだよ

222 :
PHP使うくらいならPerl4を使うけどな、このスレ的にも

223 :
そもそも用途が全然違うものを比べる意味が解らないな

224 :
Perl使える奴がわざわざぺちぴー入れてまで使う理由がない

225 :
>>222
PHPのクラスやトレイトを
Perl4でどうやって実装するの?

226 :
必要のないものをどうして実装する必要があるのだ

227 :
2つも3つも糞スレ建ててんじゃねーよゴミPerler

228 :
それぺちぱーだろ

229 :
>>226
まず必要あるかないかは、必要あるという前提にしましょう。
別にPHP専用用語ではないのだから、世界的には必要あるという流れです。
その前提で、どうやって実装するのか答えてください。

230 :
必要あるやつが実装すればいいだけのことだな

231 :
これからは質問者が来ても全部>>230のレスしか返りません。

232 :
#!/usr/bin/perl
$buffer = $ENV{QUERY_STRING};
@pairs = split( /&amp;/, $buffer );
foreach $pair ( @pairs ){
( $name, $value ) = split( /=/, $pair );
$FORM{$name} = $value;
}
$A = $FORM{name1};
$B = $FORM{name2};
print "Content-type: text/html\n\n";
print << "_EOM_";
<html>
<body>
A*B = $A * $B
</body>
</html>
_EOM_

233 :
上みたいなプログラミングを組んで、A=とB=にそれぞれ任意の数字を入れるとA*Bの答えが表示されるようにしたいんですが、
いざ実行してみても上のプログラミングがそのまま表示されるだけで正しい結果が得られないのですが、
どうしたらよいでしょうか。

234 :
というか、どこかおかしいところがあるでしょうか?

235 :
>>232-234
おかしいのはお前の頭だ
基本的なこともできてないくせに他人に質問とか頭腐ってんじゃねーの

236 :
>>234
>>232,>>233が板違いだということに気付かないのがおかしい。
平気で板違いの書き込みをするキチガイは迷惑。
お前みたいなクズはリアルでも迷惑がられてるんだから自覚しろ。

237 :
>>232=基礎をやらずにいきなりプログラミングから入る典型的なゴミ
目的達成までの手順すら把握できてないからプログラミング以前の問題
何やっても駄目な奴のパターン
人生乙

238 :
しね

239 :
>>237
人生乙は言い過ぎ。
高卒以上なら人生乙だけど、
>>232-234みたいな小学生は
中高で挽回できる可能性がある。

240 :
一人芝居乙ですwwww

241 :
>上みたいなプログラミングを組んで、A=とB=にそれぞれ任意の数字を入れるとA*Bの答えが表示されるようにしたいんですが、
>いざ実行してみても上のプログラミングがそのまま表示されるだけで正しい結果が得られないのですが、
日記はブログに書け
>どうしたらよいでしょうか。
今すぐプログラミングやめろ
そして二度とくるな

242 :
Perl系スレは質問者が叩かれると張り切って答える奴がいるから 質問したら自演で自分を叩くのが常套手段

243 :
>>234
スレ違いのネタで荒らす以外やることないわけ?

244 :
スレ違いどころか板違い
頭が悪いにも程がある
発達障害かもな

245 :
>>232
馬鹿はPerlコミュニティの質を下げるだけだからこっちに行ってくれ。
http://kohada.2ch.sc/test/read.cgi/php/1390166591/

246 :
>>232
PHPなら一瞬で片付く案件
<?php
$x = $_GET['name1'] * $_GET['name2'];
echo( $_GET['name1'] . " * " . $_GET['name2'] . " = " . $x );
?>

247 :
>>234
入門書1冊読めば大抵書いてあるはずだが・・・
本1冊買えない乞食か?
そんなに金がないならプログラムなんかやめてバイトでもしたほうがいい
日雇いでも書籍1〜3冊買える金もらえるぞ

248 :
初心者スレってかいてあるだろーが字よめねぇのかよカス

249 :
書籍すら読めないのは初心者以前に脳に異常がある

250 :
>>248
だよね。
初心者だったらスレ違いだろうが板違いだろうが
気違いだろうが許されるよね。

251 :
>>250
板違いは許されんよ。
基地外はスルーだよ。
頭悪いのはテキトーに対応するべきだよ。

252 :
初心者は自力で解決しようとしない奴のことではないぞ

253 :
>>232
A*B = $A * $B
の部分を
A*B = @{[ $A * $B ]}

254 :
>>253
板違いのゴミ(>>253)にエサを与えないでください。
エサを与えるとゴミ知能の>>253が味をしめて今後も荒らしに来るようになります。

255 :
と荒らしが申しております

256 :
>>255を見れば分かるが
「板違いは荒らし」という人間 = 荒らし
この思考回路がPerl厨

257 :
>>256
残念ながら、思考回路も間違ってるしPerl厨でもないなあ
板違いの指摘そのものは問題ではないよ、実際のところ >>232 は板違いだしな
ただ板違いへの対応ってのは
・板違いと指摘する
・徹底してスルーする
であるし
>>254 が板違いのゴミと呼ぶ >>253
「板違い」ではなく「板違いに誤った対応をした人物」でしかない。
しかも内容は相手を煽るような罵倒語ばかり。
誤った煽りは、結果的にはその人物の発言を増やすことになる。
だから >>254 も荒らしってことなんだよ。
ああ、荒らしにレスするのも荒らしだからな
俺が荒らしと言われても、勿論構わないよ?
荒らしにレスしたことには間違いないしな。

258 :
>「板違いは荒らし」という人間 = 荒らし
Perl厨はいちいちこんなこと考えてないと思うぞ。
単に 気に入らない奴=荒らし ってことだと思われる。

259 :
質問させてください。
現在、NEなのですが、社内SEを目指しています。
その時に、サーバ作業を簡単に処理させる言語が必要にりそうなのですが、
Perlは向いていますでしょうか?
掲示板とかを作るつもりはありません。作業の効率化が目的です。
隣の席のプログラマさんに聞くと、
Perlは古くてCGIにはもう未来がないよー、ってお勧めされないのですが…

260 :
>>259
IT系で上を目指そうって人間に何でPerlなんて選択肢があるわけ?
そこらへん考えたほうがいいよ。
SEならITに関しては常に最新の動向を知るためにアンテナ張ってなきゃならないし、
アンテナ張ってればPerlがいかに駄目かというこてが分かる。
SE目指すならその辺りを自分で調べられるようになってたほうがいい。

261 :
>>259
PHPのほうがいい
作業を簡単に処理させるスクリプトとかって最初はそのつもりがなくても便利ならそのまま他のものを作るときに組み込んだりする
エンジニア以外でも有用な場合はWebインターフェースにして提供することなるけどその場合にPHPで書いてあるとインターフェース作るだけですぐに提供できる

262 :
>>259
マジレスすると今現在はRuby
但し3ヵ月後、半年後は分からん
自分でその情報を追えないならSEはやめとけ
今現在既に追えてないみたいだけど

263 :
>>259
そもそもその文脈でCGIは全く関係ないよ。そこに気付けないなんて釣りだろ?

264 :
>>260-263
ありがとうございます!
javaか、PHPか、perlで悩んでました。
色々調べると、PHPが入り易そうなので、、
明日、本屋に行って、決めます。
※CGIは、掲示板とか作るのであって、検索とかするのとは違うなあ、
と思いながら、プログラマさんの意見を聞いていました。

265 :
>>264
やっぱ釣りだったか

266 :
PHPが第一候補だったのですが、某サイトで、
PHPは、WEB系以外には、まったく意味がない、との様なコメントがあり、困りました。
javaは、いきなり入るには、まだ敷居が高いかなと悩みました。
perlは、単に簡単な、検索や置換には適しているようなコメントで一気に候補に挙がりました。
これらから悩んでいたんです。コメントありがとうございます。

267 :
>>266
そのコメントとやらの投稿日時と信憑性も確認しろよ
まさか去年の夏以前の投稿で、しかも第一線で活躍してい"た"奴の投稿じゃないだろうな
3ヵ月以内の投稿で、しかも第一線で活躍してい"る"人の投稿なら信用しろ
そしてそういう人ならまずPerlを候補に挙げることはない
まぁ第一線で活躍してるわけでもない俺のこんな匿名の投稿も信憑性がないだろうから
第一線で活躍してる人がPerlなんか使わないということは自分の目で確認してくれ

268 :
>>267
投稿日時、第一線は確認していませんでした。
すみません、助言、ありがとうございます。

269 :
>>266
PHPがWeb系以外に使えんのは本当
Perlでも良いけど、RubyやPythonも有効だよ
まあ、まずは最初にシェルスクリプトだけどね

270 :
と言うか、PerlスレにPHPのこと聞く時点で釣り

271 :
>>269
>PerlとLispが結婚して隔世遺伝が黒魔術で生まれた言語。
>Javaは硬度8くらい、Pythonは6くらいになるのに対して、Rubyは3くらいになる。
との記事を見つけました。いつの記述かわからないのですが(汗)
Rubyも明日、本屋で漁ってみます。ありがとうございます。

272 :
>>270
すみません。退散します。
みなさん、マジレス、ありがとうございます。

273 :
>>232-234
_EOM_なんて使っちゃだめだよ。見づらい。
print "Content-type: text/html\n\n";
print "<html>";
print "<body>";
print "A*B = $A * $B";
print "</body>";
print "</html>";

274 :
>>274はちょっと疑問に思っただけで何かするのに必要なワケじゃないので無理して
答えようとしないで下さい。たぶんちょっとググった程度で分かるようなことではないです。

275 :
>>274-275
http://perldoc.jp/docs/modules/encoding/encoding.pod
use encoding 'euc-jp', STDOUT => 'cp932';
但し Perl 5.18.0 以降、encoding プラグマは非推奨で将来的に削除される予定。
http://perldoc.perl.org/encoding.html#WARNING

276 :
>>275
うおお、すごい、あっさり出来てしまった・・。
今日一日↓こんなのでやろうとして泥沼にハマってました。
use encoding "euc-jp";
binmode STDOUT, ':encoding(cp932)';
スーパーハカーさんどうもありがとう〜

277 :
print +(3,2,1,),"\n";
↑これ、+記号を消すと改行が反映されなくなるんですが、この+記号って
どういう意味ですか?ググるためのキーワードだけでもおねがいします。
ググると +{ } は出てきたんですが +( ) はなぜか見つかりませんでした。

278 :
>>277
(print(3,2,1)), "\n";

279 :
+() は scalar () とほぼ同等。
+{}は、ブロック中の戻り値(?)をスカラーとして評価しますって意味。
+()は、リストとして評価しませんよーって意味。
perldocのperlopの
Terms and List Operators (Leftward)

Unary "+"
を参照してください。

280 :
>>278-280
なるほど、+{ } と同じような使い方だったんですね、ありがとうございました。
perldocもこれから読んでみます、多謝。

281 :
windowsの隠しファイルを判別する方法を教えてください

282 :
>>281
http://search.cpan.org/dist/Win32-File/File.pm
use Win32::File qw(GetAttributes HIDDEN);
GetAttributes($ARGV[0], my $attr) or die $!;
print +($attr & HIDDEN) ? 1 : 0;

283 :
>>282
ありがとうございます

284 :
掲示板のCGIを設置したんだけど、<a href="./bbs/mtbbs.cgi?">って感じにリンクするようにして、http://172では、ちゃんと作動したんだけど、
実際にFTPに転送すると、作動しないどころか画面が写らない
500エラーが出てくる
原因に関してはまだわかんなくて、調べてるんだけど、そもそも思ったのが<a href="./bbs/mtbbs.html">ならまだしも<a href="./bbs/mtbbs.cgi?">なんて、直にリンクすることなんてできるの?

285 :
>>284
WebProg板へドゾー

286 :
>>284
リンクはできる
動かない原因は別にある

287 :
知恵袋で質問したら回答どころか閲覧すらなさすぎワロタ・・・

288 :
早くマジレスしろ屑やろう

289 :
質問してもどうせまともに答えてくれないんだろうな
どこ行っても解決しないわ

290 :
Web以外で最近なんか未解決質問あったっけここ

291 :
>>290
今日も元気に残件なす!

292 :
複数のRSSフィードを結合して一つのRSSを生成したい。
その際、「生成されたフィード記事のリンクURLすべてを任意のリンク先に指定する。」
このやり方を教えてください。
XML::FeedPP、XML::TreePPというモジュールを用い、下記のCGIプログラムを使用して自動更新する1つのフィードを生成するところまでは出来ました。
しかし、他の部分はチョロチョロと変えることができるのですが、記事リンクだけはどうしても変えることができません。全部の記事リンクを、ある1つのリンクに変換したいだけです。
#!/usr/bin/perl
use XML::TreePP;
use XML::FeedPP;
my $feed = XML::FeedPP::RDF->new();
$feed->merge( "結合したいrssフィード1" );
$feed->merge( "結合したいrssフィード2" );
my $now = time();
$feed->sort_item();
$feed->pubDate( $now );
my $atom = $feed->to_file( "index.rdf", "UTF-8" );
print "Content-type: text/plain\n\n";
print "出力完了\n";
使ってるレンタルサーバーはロリポップです。
複数のフィード(RSS、Atomなど)をまとめるCGI
http://blog.audiofan.net/archives/491385.html
[Perl] XML::FeedPP - RSS・RDF・Atomフィードの解析・生成・変換・結合
http://www.kawa.net/works/perl/feedpp/feedpp.html
XML::FeedPP
https://metacpan.org/pod/XML::FeedPP#feed-remove_item-index-or-link
http://search.cpan.org/~kawasaki/XML-FeedPP-0.43/lib/XML/FeedPP.pm

293 :
>>292
WebProg
http://nozomi.2ch.sc/php/

294 :
ttp://s1.gazo.cc/up/88224.jpg
こういった10行で一組のデータの中に
---
市民の...
yerles
warrior
---
というパターンが多くあります。
マッチ検索したいのは
---
市民の...
dog
warrior
---
というパターンです。
"市民"という文字を見つけたら
2行下に
"dog"という文字があるならば
その、"市民の..."を出力して欲しいです。
ファイル読んで単純マッチするぐらいしか今はできません
open (my $in , "<" , "./cdatan_5_101.s2");
while (<in>){
  if (/yerles/){print "matched\n"}
}
close $in;

}

295 :
>>294
http://ideone.com/0A9TR0

296 :
手抜きすぎた。
>>294
http://ideone.com/NUuEtp

297 :
凄い。ありがとう。
出てきたshiftとか勉強してみます
感謝

298 :
どこにshiftの出番があるのか?と思ったらそう言うことか。
普通に配列に突っ込んで、マイナスのインデクスでアクセスすりゃいいやん。
$ perl -Mvars=@a -lne 'push @a, $_ ; next if !/dog/ ; next if $a[-3] !~ /市民/ ; print $a[-3]' File
メモリ喰いが気になるのなら、
$ perl -Mvars=%h -lne '$h{$.} = $_ if /市民/ ; next if !/dog/ ; next if ! defined $h{$. - 2} ; print $h{$. - 2}' File
とか、で節約すりゃいい。、、、けど、今時そんなの気にする必要もないだろ
上のワンライナーでやってる事は、
$ perl -MO=Deparse -Mvars...略
でわかる。

299 :
恰好をつけるなら、リングバッファでも書くところですが、回答としては、あんまりだと思ったので。
2行固定なら、別に使わなくても。
perl -ne '($_, $x, $y) = ($x, $y, $_); $y =~ /dog/ && /市民/ && print' File
何も考えなくていいなら、正規表現でバッサリ。
perl -e 'print((local $/ = <>) =~ /(^.*市民.*\n).*\n.*dog/gm)' File

300 :
>>299
1ヵ月以上もお前のレスにレスがつかないのはなぜか分かる?
お前みたいなゴミクズは誰も必要としてないからだよ。
一般社会ではあからさまに無視するわけにもいかないから当たり障りのない対応をしてもらってると思うけど、
お前ハッキリ言って迷惑だから。
ゴミクズはネットでもリアルでもできるだけ社会と接点持つな。

301 :
Test Summary Report
-------------------
t/config-finder.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: Bad plan. You planned 26 tests but ran 0.
Files=86, Tests=923, 636 wallclock secs ( 2.64 usr 1.67 sys + 247.77 cusr 297.98 csys = 550.05 CPU)
Result: FAIL
Failed 1/86 test programs. 0/923 subtests failed.
Makefile:945: recipe for target 'test_classic' failed
make: *** [test_classic] Error 255
PETDANCE/ack-2.12.tar.gz
/usr/bin/make test -- NOT OK
//hint// to see the cpan-testers results for installing this module, try:
reports PETDANCE/ack-2.12.tar.gz
Running make install
make test had returned bad status, won't install without force
Failed during this command:
PETDANCE/ack-2.12.tar.gz : make_test NO
Windous上のcygwinとLinuxでCPANのackをインストールしているところでつまずきました
上のエラーはcygwinの方のエラーです
これは、curlを使えば回避できるそうですが http://d.hatena.ne.jp/katz_24/20130210/1366387522
setup.exeを利用したインストールでも何故かインストールができずに手詰まりになりました
ack-2.12.tar.gz を回答してみても訳が分かりません
ackをインストールする手はありますか?

302 :
make test had returned bad status, won't install without force
まけ出来てるのならいんすこ自体は可能

303 :
force installでcygwinの方に入れました
正常に動作します
ありがとうございました
Linuxの方は、手っ取り早く
sudo aptitude install ack-grep
しました
おかげさまで両方にackが揃いました
感謝します

304 :
xmlを取得して中身を
s|。|。<br>|g;
して句読点ごとに改行させたかったのですがどうしても出来ません
なにか理由があるのでしょうか
初心者なもんで変な質問をしていたらすいません

305 :
文字コード

306 :
エスパーじゃないんだから、そんな質問で答えれる訳ないだろ。
せめてサンプルとなる簡単なxmlを出せよ・・・

307 :
申し訳ないです
>>305
デコードはしています
>>306
申し訳ありません
wikipedia.simpleapi.net/api?keyword=Test&output=xml

308 :
>>307
テストした結果、普通に置き換えできます。
取得方法に問題があるんだろう。
ってか、こんな質問の仕方じゃスレ全部埋まるわ・・・
問題が起きてるサンプルコード出してみ

309 :
>>307
ちげーよ
utf8のファイルをeucのスクリプトでマッチしようとしたんじゃないの、ってこと

310 :
>>309
shift-jisのスクリプトでマッチさせようとしました
不味かったでしょうか

311 :
>>310
なら、どっちかの文字コードにencodeして合わせる

312 :
いや、よほど特別な事情がない限りは utf-8 のソースにするべき。
http://d.hatena.ne.jp/perlcodesample/20091118/1246679588
この辺読んで理解するべき。

313 :
> perl -e "print (5+5)/3"
10
なんで?

314 :
print -e "print((5+5)/3)"

315 :
>>313
http://perldoc.jp/docs/perl/5.18.1/perlfunc.pod
> 括弧を使うときには、単純な、(しかし、ときには驚く結果となる規則が 適用できます:
> 関数に見えるならば、それは関数で、優先順位は関係ありません。
(略)
> Perl に -w スイッチを付けて実行すれば、こういったものには警告を 出してくれます。

316 :
2000年には既にwarnings実装してんのに
なんで未だに、-w推薦文章なんか残してんだろーね?
-Mwarningsのエイリアスって訳でもねーし。

317 :
【誤】print -e "print ((5+5)/3)"
【正】perl -e "(print(5+5)) / 3"
ついでに -w と -Mwarnings は別物。-Mwarnings で -w の代わりになるわけではない。

318 :
だが共に生きることはできる

319 :
>>317
-w ≠ warningsは常識だろ。
で、「use Unicodeは、use Jcodeの代りじゃない」ってレベルの事を言ってるぞ、おまえさん。
-wが石頭だから、より制御しうるwarningsを実装したんだろが。

320 :
5.20のperllexwarnがスッキリしててワラタ。

321 :
常識の根拠は常識は常識だから(真顔)

322 :
再帰中に再帰の深さを出したいんだけどlocal使っていい?
local $::count = $::count + 1;
もっと普通の方法ある?

323 :
引数で渡す
sub foo {
  my ($arg, $count) = @_;
  ...;
  foo($arg, $count) if $count++ < 10;
}

324 :
ありがとーーー。
複製される変数の数には変わりがないよね、たぶん。
上はグローバル変数と言うのが気に入らなくて、下は引数で扱う値が増えるのが気に入らないが。

325 :
while(@all){ ((shift @all) eq 'cut') and last; }
whileを修飾子として書くと落ちるんだが誰か理由を教えてくれー
((shift @all) eq 'cut') and last while(@all);
evalでも落ちた

326 :
英数混じった文字列の中から2桁の数字にマッチさせたいのですが、
/\d\d/だと3桁以上の数字の前2桁にもマッチしてしまいます。
/^(\d\d)\D|\D(\d\d)\D|\D(\d\d)$|^(\d\d)$/ こんなことするより簡単な方法ないでしょうか? 

327 :
[^\d]\d{2}[^\d]

328 :
% perl -le 'print q{22} =~ /[^\d]\d{2}[^\d]/'
% perl -le 'print q{22} =~ /(?<!\d)\d{2}(?!\d)/'
1
% perl -le 'print q{22} =~ /(?:^|\D)\d{2}(?:$|\D)/'
1

329 :
/(?<!\d)\d{2}(?!\d)/
これが期待通りの結果が得られました。
(?<!)とか(?!)とかこれまで使ったこと無かったので勉強になりました。
ありがとうございました。

330 :
テストパターンに英字が入ってませんぜ

331 :
\b使えよ。便利だぞ。

332 :
そりゃ\b使って期待通りの結果が出るなら使うだろ

333 :
以下のような日付が下から上に並んでいるoriginal.txtがあるとします。
これを、日付を逆順にしたoutput.txtに整形するプログラムを作りたいです。
Windowsで、Batch fileとPerlで作れたらと考えています。よろしくお願いします。
<original.txt>
########## 20141203 ###########
DNINITIENK
FDKHJKDKKSK
・・・・・
########## 20141202 ###########
TUNINJKDF
NIGHALKDK
・・・・・・
########## 20141201 ###########
ABCDEFGHIJKE
LMNOPQRSTUV
・・・・・
<output.txt>
########## 20141201 ###########
ABCDEFGHIJKE
LMNOPQRSTUV
・・・・・・
########## 20141202 ###########
TUNINJKDF
NIGHALKDK
・・・・・・
########## 20141203 ###########
DNINITIENK
FDKHJKDKKSK
・・・・・・

334 :
>>331
\bだと英字と数字の境目は単語の区切りにならないみたい。

335 :
centosで元から入ってるperlとは別にソースインストールしたperlを別に入れました。
新しくインストールしたperlで以前から入っていたCPANモジュールを使いたい場合、再度入れなおす必要ありますか?

336 :
>>333
perl -Mvars=%h -ane '$a = $F[1] if @F == 3 ; $h{$a} .= $_ }{ print $h{$_} for sort { $a <=> $b } keys %h’ original.txt
>>335
モジュールの共用は避けるべき

337 :
>>333
use 5.016;
use warnings;
my $boundary = qr/^#+\s+\d+\s+#+\s*$/;
open(my $in, "<", "original.txt") or die;
my @data;
my $chunk = '';
while(<$in>){
if (/$boundary/ and (length($chunk) > 0)){
push @data, $chunk;
$chunk = '';
}
$chunk .= $_;
}
if (length($chunk) > 0){
push @data, $chunk;
}
$in->close;
open(my $out, ">", "output.txt") or die;
$out->print(reverse @data);
$out->close;

338 :
単純に逆にするだけか
perl -00pe '$_ = join q{}, reverse ( split /(?=^#)/m)'

339 :
>337,336,338
有難うございました。

340 :
my $initial_title_ = "\$" . "$initial_threads" . "_begin";
$initial_title_ = eval $initial_title_;
1行に短くなりませんか?

341 :
my $initial_title_ = eval "\$${initial_threads}_begin";
こういうこと?

342 :
>>341
ありがとう
eval使うのが3つあったから
6行が3行になったよ

343 :
$seach_wordに日本語を入れたいのですが、それだとマッチしません。どうすればよいでしょうか?
w3m -dump -cols 160 http://peace.2ch.sc/test/read.cgi/tech/1349538519/| ~/Perl_instance/resSearch.pl
#!/usr/bin/env perl
use strict;
use warnings;
use utf8;
my $seach_word = ">1" ;
my $found_res = 0;
my $res    = "";
while (<>) {
  if (/^\d/x) {
    # out put, flash
    if ( $found_res == 1 ) {
      print $res;
      $found_res = 0;
    }
    $res = "";
  }
  else {
    # searching
    if (/$seach_word\b/x) {
      $found_res = 1;
    }
  }
  # buffer lines
  $res .= $_;
}

344 :
>>343
use open ":utf8";

345 :
あ、 binmode STDIN , ":utf8": で

346 :
binmode STDIN , ":utf8";
binmode STDOUT , ":utf8";
my $seach_word = "日本語" ;
で同様のコマンド叩いて、つまり344が拾えるはずが
何故かヒットしません

347 :
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">

348 :
w3m -dump -cols 160 http://peace.2ch.sc/test/read.cgi/tech/1349538519/|nkf -g
UTF-8
UTF-8しか扱わないのにちょっとエンコード回りは複雑だ

349 :
webサイトの表形式データ(横方向は5列、縦方向は不定で100行ぐらい)を取得するのに、
正規表現の繰り返しマッチング
m//g を使って、結果を配列に入れてるんだけど、
もっと簡単に取ってくるモジュールはないでしょうか?

350 :
>>349
>webサイトの表形式データ
の形式が分からんとなんとも。

351 :
>>345
ヒント助かった。
use Encode qw/encode decode/;
my $enc = 'UTF-8';
sub d($) { decode($enc, shift) }
sub e($) { encode($enc, shift) }
my $seach_word = "日本語";
my $found_res = 0;
my $res    = "";
while (<>) {
  if (/^\d/x) {
    if ( $found_res == 1 ) {
      print $res;
      $found_res = 0;
    }
    $res = "";
  }
  else {
    my $seach_word_ = e$seach_word;
    if (/$seach_word_/x) {
      $found_res = 1;
    }
  }
  $res .= $_;
}

352 :
>>349 >>350
例えば、こんな表です
http://ke.kabupro.jp/hist/20150107.htm
今はHTMLのソースを見て、証券コードを正規表現で抽出するために、
=~ m!<tr><th><a\shref[^>]+>(\d{4})<\/a>!ig
などとして配列へ入れているのですが、泥臭いです。
もっとスマートに取得できるモジュールは無いかと思った次第です。

353 :
(続き)
例えば統計計算用のRでは readHTMLTableというモジュール(パッケージ?)があり、表形式のデータを含んだurlを指定すれば、簡単に取得出来るのですが。

354 :
>>352
HTML::TableExtract
http://search.cpan.org/~msisk/HTML-TableExtract-2.12/lib/HTML/TableExtract.pm
Web::Scraper
http://search.cpan.org/~miyagawa/Web-Scraper-0.38/lib/Web/Scraper.pm

355 :
>>354
ありがとうございます

356 :
なにこの良スレ

357 :
my $tmp = {
$a => sub { $_ = 処理A},
$b => sub { $_ = 処理B},
$c => sub { $_ = 処理C},
};

ループ中に↑のように書いている場合、一つの変数に対して複数の処理($a に 処理A' を追加)を
加えたい場合、どのように書くのでしょうか?

358 :
;

359 :
凄い初歩的な質問だと思うのですが真剣に行き詰まってます
教えてください

_HOGE_

こんな表記の変数ってなんて表現するんですか?
またネットでこういう変数について調べたいときは、
どのように検索したらヒットしますでしょうか。

Perl __
で検索しても全然それらしい記事が発見できず

360 :
_HOGE_は変数じゃないからヒットしないのが正解

もしかして:ヒアドキュメント

361 :
なるほど・・・独自のプログラム記述なんでしょうかね・・・

Perlの変数記述方法じゃないことがわかって少し安心しました
もう一回解析してきます

362 :
>>360さんの回答で先入観が排除され、
意味がわかりました。

$mes =~ s/_HOGE_/$name/g;

文字列に埋め込まれた_HOGE_を別の変数に代入されてる文字列と置換させていました。
ありがとうございました。

363 :
__END__
とかそんなのの仲間じゃなくて?

364 :
なんでも受け付けるからって、
__HOGE__ をヒアドキュメントとして使ってる人は、単に
特殊リテラルを理解してない人。

質問に超絶遅レスするなら、
__HOGE__は、ほんとうに HOGE と書かれていたなら、
特殊リテラルのまねっこ。
DATA, END などなら、perldoc.jp で perldata から「特殊なリテラル」の項を
参照すること。

365 :
>>364
どういうこと?

366 :
ヒアドキュメントのデリミタを
print <<die;
dieなんてしないよ
die

ってしたら混乱するでしょ。それと同じレベルで特殊リテラルの
記載に類似(もしくはそのまま)させて使ったら、あかんでしょ。

print <<__END__;
dieなんてしないよ
__END__

って主旨?

367 :
絶対にありえない単語を区切りにしないと、区切りとしての役目にならんだろが
__END__を区切りにしてしまったら、__END__という単語が使えなくなるだろ

368 :
じゃあ __HOGE__ にするわ。絶対ありえん単語だし。

369 :
>>367
実行してみろよ、動くぞ。

use strict ;
use warnings ;
while(<DATA>){
print ;
}

print <<__DATA__;
これがヒア
__DATA__

__DATA__
特殊リテラル

370 :
ID.パス付きのHPの更新通知プログラムをつくり実行したところ (certificate verify failed)とハマりました。

おそらくSSL関係でつまっています。
簡単に教えてくれる方お願いします。

$mech->get('https://*****');
↑指摘されたラインです

SSLかと思うのですが、SSLについて知識があまりないため、
ダメだった理由をわかりやすく教えていただけませんか?


あと、ユーザーIDやパスワードの前にpitgetを書いてあると
どうなるのでしょうか?

説明下手でごめんなさい。

371 :
特定のディレクトリ(test)からファイルを読み込む処理を
実装しようと思っています。

while(<./test/*>){
  #〜ファイル読み込み処理
}
はOKなのに

$hoge = "./test/*";
while(<$hoge>){
  #〜ファイル読み込み処理
}
がうまくいかない理由はなぜなのでしょうか?
$hogeを可変にしたいのですがどうすればよいでしょうか?
突然の質問で申し訳ありませんが、宜しくお願いします。

372 :
$hoge = "./test/*";
これは文字だからです。(演算子に対するアドレス(ポインタ)ではありません)。

$hoge = "test";
while(<./$hoge/*>)

373 :
>>372
出来ました!ありがとうございます
今日かなり悩んでいました
おかげ様でスッキリしました

374 :
下のようにリストのリストを作成したいがcpanか何かで実現できないでしょうか?
> (list (list 1 2) (list 3 4))
((1 2) (3 4))
> (first (list (list 1 2) (list 3 4)))
(1 2)
> (second (list (list 1 2) (list 3 4)))
(3 4)


my @car = (1, 2);
my @cdr = (3, 4);
my @both = (@car, @cdr);

print "\@car is @car\n"; # -> @car is 1 2
print "\@cdr is @cdr\n"; # -> @cdr is 3 4
print "\@both is @both\n";# -> @both is 1 2 3 4

printf "%s\n" , $both[0]; # -> 1
printf "%s\n" , $both[1]; # -> 2
printf "%s\n" , $both[2]; # -> 3
printf "%s\n" , $both[3]; # -> 4

375 :
Lisper な人?
多分、こういうことをお望みかな。

#!/usr/bin/perl

use Data::Dumper;

my @car = (1, 2);
my @cdr = (3, 4);
my @both = ( \@car, \@cdr);
print( Dumper( \@both));

376 :
ごめん、アクセス方法も書かなきゃね。

#!/usr/bin/perl

my @car = (1, 2);
my @cdr = (3, 4);
my @both = ( \@car, \@cdr);
print("$both[0]->[0]\n");
print("$both[0]->[1]\n");
print("$both[1]->[0]\n");
print("$both[1]->[1]\n");

377 :
>>376
ありがとう perlのリファレンス表記がこの機会に少し分かりました

my @car = (1, 2);
my @cdr = (3, 4);
my @both = ( \@car, \@cdr);
print("$both[0]->[0]\n");
print("$both[0]->[1]\n");
print("$both[1]->[0]\n");
print("$both[1]->[1]\n");
print("@{$both[0]}\n");
print("@{$both[1]}\n");

378 :
971 名前:名無しさん@七周年[] 投稿日:2006/11/11(土) 00:56:10 ID:M8+ahUZV0
自称スーパープログラマー某

強烈加齢臭
メール見ない メール無視
ドキュメント見ない ドキュメント無視
説明聞かない 説明無視
話聞かない 話無視
ガム→むっちゃー むっちゃー むっちゃー むっちゃー
煎餅→バリバリバリバリバリバリ
菓子パン→モグモグモグモグモグモグモグモグモグモグ
カップアイス→むっちゃー むっちゃー ペロペロペロペロ

フロアすべてに響き渡る 超ばかでかいくしゃみ 当然手でおさえない

異音と異振動
ドスーン!ドスーン! ドカーン!ドカーン! バコーン!バコーン! ズドン!ズドン!
机が近いとマウスポインターが飛ぶ 誤操作誘発
書類だしたりしまうだけでドカンドカン

30秒ごとに口と鼻から異音
ふんっっ!    ふんっっ!   

備品破壊 貸与P C 破壊 他人のもの破壊

奴の作ったスクリプトとプログラムは使えない バグ製造機

電話や共有携帯電話 キーボードが油ベタベタ
奴に電話とPCとコンソールは触らせてはいけない

379 :
HTMLファイルの特定文字列を大文字から小文字へ置き換えたいです。
具体的には、name=

380 :
あれ、途切れちゃったのでダブルクォートでおかしくなったので、無しで書きます。
HTMLファイルの特定文字列を大文字から小文字へ置き換えたいです。
具体的には、name=A10AB を name=a10ab とnameの部分のみ置き換えたいです。

381 :
s{ name=" ([^"]+) " }{ 'name="' . lc($1) . '"' }egx

382 :
>>381
eで関数を使えるんですね。ありがとうございました。

383 :
perl コマンドラインからモジュールを読み込みたいんですが、
perl -mM Win32::Clipboard -e ""
だと
Can't open perl script "Win32::Clipboard": Invalid argument
と怒られます。

Perl64\lib\Win32\Clipboard.pm
は存在しているのですが・・・

384 :
なんで -m と -M 重ねてるの?それと隙間開けずにやってみ
-MWin32::Clipboard
  ↑

385 :
perl -mM Win32::Clipboard
だと M.pm を読み込んだ後 Win32::Clipboard という名のファイルをperlスクリプトとして実行しようとしてるっぽい

386 :
>>384
できました。
ありがとうございました。

387 :
どうでもいいけど、質問の回答に「なんで○○なの」と質問で返すのはみっともない
わからないから質問してるのにね
ここは初心者スレだし
よっぽど回答に自信が無いように見える

388 :
なんで?
なんで?
なんで?
ことあるごとに、「なんで」っていうヤツ
バカっぽい
イライラする
ムカツク

389 :
>>388
「なんで」を追求する楽しさがわからないの?

390 :
質問を質問でかえすやついるよな
俺「なぜ変更したんですか?」
先輩「なぜ、その変更に疑問を抱くの?」

・・・

391 :
文脈にもよるわな
マニュアルにはっきり書いてあるようなことと違うことやっているなら「お前ちゃんと読んでないのか?」ってなるし
どう説明したら理解できるのか探るためにどう考えてどこに疑問を持ったのか確認することもあるし

そういう文脈を無視して 質問したら質問が返ってきた = おかしい は短絡的だね

392 :
>>391
めんどくさい人って思われてるよw
誰もあんなに聞きにこなくね?

393 :
perlの本を読んでいると、よく
「スカラーコンテキストでは〜」とか「リストコンテキストでは〜」とありますが
どのようなところで、分かるのでしょうか?

$a = grep /d/ ,qw<ab cd def>;
なんかgrepがスカラーコンテキストで使われていると思うんですが

if(grep /d/ ,qw<ab cd def>){}
だとなぜスカラーコンテキストだと分かるのでしょうか?

394 :
真偽値だからスカラーコンテキスト

395 :
ありがとうございます
理解できました。

396 :
shiftjisのファイルを読み込むと「{」が「本」にマッチしちゃうんですがいい方法ありませんか?

397 :
基本全部utf8で処理する

398 :
ファイルを読み込むときにperlに文字コードを教えてあげるとバイト単位ではなくて文字単位で認識してもらえるようになる
open my $fh, '<:encoding(cp932)', $file or die $!;

正規表現を含むソースコード全体をUTF8で書き、スコープの上の方で use utf8; と宣言すればスコープ内のコードも文字単位で認識されるようになる

399 :
>>398
レスありがとうございます。
試してみます。
取り急ぎお礼まで。

400 :
以下エラーが出たため、ググると、似たエラーのQ and Aがありました。
Q and A では "if(defined(%hash))"を"if(%hash)"にしろと読めたので、倣うと確かにエラーは解消されました。
理屈はまるで分からないのですが、%記号のついた変数のときだけdefinedを削る理由は何なのでしょうか。

エラー: Can't use 'defined(%hash)' (Maybe you should just omit the defined()?) at ./w3mhelp.cgi line 51.
Q and A: https://github.com/bioconda/bioconda-recipes/issues/1254

401 :
>>400
すごく古い Perl (例えば 5.005_03) だと、defined %hash はエラーにならず 0 か 1 が返ってきていた。
だが今やこの機能は廃止された。

http://perldoc.jp/func/defined
> 集合(ハッシュや配列)への defined の使用は非推奨です。
> これはその集合にメモリが割り当てられたかを報告するのに用いられていました。
> この振る舞いは将来のバージョンの Perl では消滅するかもしれません。

ハッシュ変数自体をスカラーコンテキストで評価すると「利用バケット数/確保バケット数」のような値が
返ってきて、これは昔から変わらない。内容が完全に未定義 = キーが一つも無ければ 0 が返される。
よって if (%hash) { ... } は、意味や挙動的には if (keys %hash) { ... } と同じ。

my %hash;
printf "%s, %d\n", scalar %hash, scalar keys %hash; # 0, 0
$hash{udnef} = undef;
printf "%s, %d\n", scalar %hash, scalar keys %hash; # 1/8, 1
%hash = ();
printf "%s, %d\n", scalar %hash, scalar keys %hash; # 0, 0

http://d.hatena.ne.jp/yumatsumo/20071207/1197002522

402 :
ttps://perldoc.jp/docs/perl/5.22.0/perl5220delta.pod#defined40-64array41-32and32defined40-37hash41-32are32now32fatal32errors
>defined(@array) と defined(%hash) は致命的エラーになりました
>これは v5.6.1 から廃止予定で、v5.16 から廃止予定警告が出力されていました。

v5.6.1は2001年、v5.16は2012年、実際に廃止されたv5.22は2015年にリリース

ttps://www.effectiveperlprogramming.com/2016/06/perl-v5-26-new-features/
>A hash is scalar context will return the number of keys, not the hash statistics.
今年リリース予定のv5.26からはスカラーコンテキストのハッシュが返す値はハッシュの持つキーの数になるそうです

403 :
Perl初心者です。独学でやり始めましたが、わからないことがあり、先輩方、何卒よろしくお願いします。

my $num = 1;
my $inc = $num++;
print “$num¥n”;
print “$inc¥n”;

変数$numは2と表示されますが、変数$incは1と表示さます。こらは仕様でしょうか。変数$incについても2が表示されると思ってたのですが。
C言語では右辺を評価した後に左辺に代入して、2が表示してたかな、と思ったので質問させていただきます。

404 :
>>403
Cでも++演算子は同様の結果になると思ったが?

405 :
>>404
本当ですね。もっと確認してから質問するべきでした。
やりたかったことは
$inc = ++$num(
でした。C言語と同じですね。

ご教授頂きまして、どうもありがとうございました。

406 :
>>405

$inc = ++$num;

の間違いです。

407 :
フィボナッチ数列で軽く練習していたら足し算うまくいってません

$a = 1; $b = 1; $c = 2;
until ($c > 20000) {
($a, $b, $c) = ($b, $c, $a+$b);
print "a is $a\t" ; print "b is $b\t" ; print "c is $c\n" ;
}

408 :
>>407
フィボナッチ数列を{Fn}とすると、漸化式はFn+2 = Fn+1 + Fn (n ≧ 0)なので、

($a, $b, $c) = ($b, $c, $b+$c);

ついでに、Perlで$aと$bは特殊変数なので、一般的な変数として使わないこと。
untilは条件をひっくり返してwhileを使おう。

409 :
>>408
ありがとうございます

410 :
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

WVNXN

411 :
perlやってみたいど素人です。
Ubuntu 18.04がメインのマシンです
Windows XPサポート終了後難民となり
Ubuntu 16.04に辿りついてます
Ubuntuもまだまだど素人ですけど
通常に動かす所まではできます
Perlはどこから?始めたらいいでしょう
本買った方がいいのかな?

412 :
perlやってみたいど素人です。
Ubuntu 18.04がメインのマシンです
Windows XPサポート終了後難民となり
Ubuntu 16.04に辿りついてます
Ubuntuもまだまだど素人ですけど
通常に動かす所まではできます
Perlはどこから?始めたらいいでしょう
本買った方がいいのかな?

413 :
どのみち本は買った方がいいと思うけど
初心者から始めるならこんなのもあるみたいよ(宣伝乙)
http://www.perl-entrance.org/

414 :
>>413
独学派なんです。

415 :
perlに初心者がつくとは。。perlの未来は明るい

416 :
Perl 6の“Neko operator”を使ってみたいのですがどのように使用すればいいでしょうか。
> 0 ^..^ 9
> say "0 ^..^ 9"
などとやっても
0 ^..^ 9
という文字列(?)が返ってくるだけなのですが……。

417 :
Perl6は初心者なので全く分からない。
というかやろうとしたことすらないので知識ゼロw

418 :
perl6いつになったら実用的な実装出るのー?

419 :
>>416
すいませんどなたかこれ分かりませんか。

420 :
>>419
perl6はまったく使ったことはないが、
範囲演算子らしいから
perl5の ... と同じように使うんじゃないのかね。
say $_ for 0 ^..^ 10;
みたいな? perl6の文法的にこれでいいかはわからんけど。

421 :
perl5の範囲演算子 ... じゃなくて .. だったね。失礼。

422 :
>>420
できました。ありがとうございます。

423 :
Neko演算子なんてあるのねw

424 :
ANH

425 :
ANH

426 :
Perlの勉強始めました。

427 :
冷やし中華始めました。

428 :
Xorgってperlで描かれてるコマンドが多い気がするけどなんで?

429 :
なんだろう? 計算式で質問投稿しようとするとNGワードエラーで拒否られてしまう orz
全角でもダメかー

430 :
これで書けるかな?

代入計算式のソースと書きたかった質問内容をマンゴースレに貼りました。
https://agree.2ch.sc/test/read.cgi/mango/1532726276/421-422

431 :
>430 の書き込みで、本来続きだった リンク先 >424 の
16進〜解説お願いできませんでしょうか?
の文章内だけでもNG含んでるとか・・・・プログラム技術板・・コミュニケーション終わってね?

432 :
>>430
よくわからないんだけど、下2桁を60で割って3桁目より上は1の位にシフトしているわけだよね。
とするとあり得るのは時間の時と分について 時 * 100 + 分 とやった結果が数値として入っていて、
それの時間単位への変換ではないか?

例えば元の値が 315 なら3時間15分という意味で、それを時間単位に直すと 3.25 時間ってこと。

433 :
時と分とは限らないか。分と秒かも知れない。まあしかし下2桁は60進法で考えなければいけないということに変わりはない。

434 :
>>430
ところで元のプログラムに「16進バイナリデータを・・・」というコメントが入っているのだろうが、呼び出す側は実際には何を渡している?

仮に元がバイナリだったとしても unpack('N', ...) のようなことをしていない? だとするとそこでバイナリから Perl の
変数への変換自体は終わっている。

つまり、コメントが紛らわしい表現になっているだけ。

435 :
>432-434 スミマセンです。 orz
もっと詳しく書こうとするとマンゴースレでもブロックされました。
ぶっちゃけ、この中の
ttp://motor.geocities.jp/resermail/dc10tools.zip
「dc10mov2csv.pl」内です。

gps_data{'latitude'}の部分からです

gps_data{'bearing'}の式は
変換が単精度浮動小数点数(float)のIEEE754 単精度float変換で合ってますか?

これをベースに別メーカー機種の同様な構造を持つデータでの他言語の変換プログラムを考えているので。

436 :
>>435
pack, unpack の f は機種依存なので IEEE 754 単制度になるかどうかはプログラムからだけではわからない。
http://perldoc.jp/func/pack
まあでも今時の普通のPC用Perlならなってそうな気がするけどね。

latitude って緯度か。GPSデータのバイナリをPerlの変数に入れているということだな。
だから下2桁を60進法で考える必要があると。

やはりそのプログラムのコメントは紛らわしいってだけだよ(サブルーチン名も紛らわしいが)。
bin_convert 呼ぶときには既にバイナリから float に unpack されてるから。
で、bin_convert 内でやっているのは先に書いた通り下2桁を60進法で小数点以下の値にしてるってことね。

437 :
>>436
ありがとうございます。
全体からずらして抜いたもの60進法にしてるだけなんですね。
てっきりバイナリから浮動小数点を出す特殊計算かと思っていました。
適当にがんばります。

438 :
「サンプル」のCSVを文末の「結果」に変換するプログラムをPerlで作りたいです。
● サンプルのCSVの構造:
1コラム目:数字8桁の昇順、2コラム目:数字1桁、3コラム目:文字列
● 作りたいプログラム:
1コラム目、3コラム目は保持する。複数レコードで1コラム目に重複があれば、
それらの複数レコードの2コラム目の1桁数字を連番にする。
1コラム目に重複がない場合は、当該レコードの2コラム目を1にする。

● 「サンプル」
06030002,6,文字列A
06030004,3,文字列B
06030004,4,文字列C
06030004,5,文字列D
06030005,3,文字列E
06030005,4,文字列F
06030006,3,文字列G
06030006,4,文字列H
06030006,7,文字列I
06030007,3,文字列J
06030008,3,文字列K
● 「結果」
06030002,1,文字列A
06030004,1,文字列B
06030004,2,文字列C
06030004,3,文字列D
06030005,1,文字列E
06030005,2,文字列F
06030006,1,文字列G
06030006,2,文字列H
06030006,3,文字列I
06030007,1,文字列J
06030008,1,文字列K

439 :
まずは自分で書いてみたコードを晒すところからだな。

440 :
一行プログラムが思い浮かんだ。

最初の列をハッシュのキーにして3列目をpush。
全部読んだらキーをソートして読んだ内容に番号降りつつ出力。

しかし俺は今電車の中からスマホで書いてるのでここに書く気が起きない。

441 :
Ruby で作った

require 'csv'

count = Hash.new( 0 ) # 初期値は、0

# コロン区切りのCSV 入力ファイルを、1行ずつ処理する
CSV.foreach( "input.csv" ) do |row|
count[ row[ 0 ] ] += 1
row[ 1 ] = count[ row[ 0 ] ]

puts row.join( "," )
end

442 :
考え方は >>441 と同じ

perl -pe "s/^([^,]+,)[^,]+/$1.++$count{$1}/e" < sample.csv

443 :
my @y = "";
while(<>) {
my @x = split ",";
# $x[1] = $x[0] eq $y[0] && ++$y[1] || 1;
$x[1] = $x[0] ne $y[0] || ++$y[1];
print join ",", (@y = @x);
}
ウチでやるならこうかしら

444 :
おはよう。

元のテキストが s.txt に入っているとして、こうする。

perl -ne 'chomp;@d=split/,/;push(@{$h{$d[0]}},$d[2]);END{for(sort keys%h){for($i=0;$i<@{$h{$_}};$i++){print join(",",$_,$i+1,$h{$_}[$i])."\n"}}}' s.txt

なげーなw

445 :
あ、そうか。貯め込む必要はなくてハッシュ作ってそのまんま出せば良いんだよな。

じゃあawkの方が楽ではないか?

awk -F, 'BEGIN{OFS=","}{n[$1]++;print $1,n[$1],$3}' s.txt

446 :
436です。皆様ありがとうございました。
自分では1行ずつ処理することまでしかできず、複数レコードの
1コラム目の比較をすることができませんでした。
おかげさまで体育の日に子供の運動会に行けます!
ありがとうございました!

447 :
上の方のレスにも関連したものがありますが、
ファイルから読み込んだ文字列データにて
パターンマッチがヒットしません。
同一文字列を直接コード内に定義すると、ヒットします。

出来ればファイルに切り出したいので、
ご教示いただけますでしょうか。

448 :
[環境]
Activeperl win8.1 or 2016 server
perl -v
This is perl 5, version 24, subversion 3 (v5.24.3) built for MSWin32-x64-multi-thread

[コード utf-8で作成]
#res[1]にはcp932のコードの「テスト」を含む文字列が格納されている。
$res[1] = Encode::decode('cp932', $res[1]);

#patern.txtはutf-8で「テスト」の文字列が格納されている。
open (FILE, "<:utf8", "patern.txt") or (die "$!");
my $line = <FILE>;
close(FILE);
#$line = 'テスト';←#を外して直接コードに書くとヒットする。
print encode('cp932', $line);(正常に取得できている。)

if ($res[1] =~ /$line/){
print "Hit!";
} else{
print "not Hit";
}

---出力---
>テスト
>not Hit

449 :
>>448
改行文字の有無?

450 :
たぶんそれだな。$line の中身が "テスト\r\n" または "テスト\n" になってそう。

451 :
chomp($line); するべき

452 :
遅くなりすみません。
テストファイルには改行を入れていなかったのですが、
chompが必要なのですね。
ファイルからレコードを取得するにはchompが必要と勉強になりました。
ありがとうございました。

453 :
>>452
いや、改行は入っていると思うぞ。でなければあのプログラムでは一致する。

454 :
utf-8がボムがついている可能性もあるね

455 :
ところでUTF-8にBOMってなんか意味あるの?
ビッグエンディアンで上のビットから詰め込んで並べている1パターンしかないよね?

456 :
>>455
あるよ、BOMがあればUTF-8だと文字コードを
簡単に判定できる

つまり、文字化け防止に役立つ
みんなBOM付けるようにすれば良かったんだけどな

457 :
あー。magic用か。

458 :
>>452
ですが、改行が入っていました。
遅くなりすみません。
すみませんでした。確認をしっかりします。

もう一つ質問があるのですが、>>452の環境にて、パターンマッチングを、全角、半角、ひらがな、カタカナ、大文字、小文字を区別することなく行いたいのですが、方法をご教示いただけますでしょうか。

459 :
>>458
手順としてはまず比較に都合のいいように比較する側とされる側の文字列を正規化する。
例えば半角は全て全角にし、濁点や半濁点はそれを含んだ文字にし、英小文字は大文字にする。
それから比較を行う。

ただし使われている文字がASCIIの文字だけならば // のオプションで i が使えるので正規化不要。

460 :
教えて下さい。

my @str4=['a','b','c','d','e'];
my $ref4=\@str4;

print $str4[0][1],"\n"; # b
print @{ $str4[0] },"\n"; # abcde

ref4を使って同様に b と abcde を表示するには、どうしたらいいですか?

461 :
うっかり自己解決しました。数時間悩んだのに。
print @{ ${ $ref4 }[0] };
print @{ ${ $ref4 }[0] }[1];

462 :
>>459
オプションで可能であればと思ったのですが、マッチング文字列と対象を同じ文字種にしないといけないんですね。
ActivePerlでUnicode::Japanese
でUTF8から変換して書いてみたのですが、cp932にencodeすると、化けてしまい、使用できませんでした。
ActivePerlで使用可能なモジュールあればコードではなくてかまいませんので、何かあれば紹介してもらえますでしょうか。

463 :
UNICODEにはcomposed、decomposedというややこしいものもあるんだよね。
https://pointoht.ti-da.net/e8205606.html
Unicode::Normalizeってのがあるけど、日本語を特別扱いしてくれたりはしなさそうな予感。

464 :
>>455-457
Linux では、BOM なしUTF-8 を使う、アプリ開発者が多く、
BOMありにするとバグるアプリがあるから、BOMなしを使っているけど、

そうすると、Windows では、sjis と区別がつかなくなり、
Explorer での文字列検索ができなくなる

だから、Windows10 で、WSL, Ubuntu を導入して、grep を使っている

465 :
結合文字列をUnicode正規化で合成する方法の危険性
https://qiita.com/monokano/items/d4c37d9bc9833eaeda6e

濁点・半濁点を別の1文字として扱う、結合文字列はMac だけだから、Mac を使わないなら関係ない

Unicode正規化は、日中韓で、別の漢字に変換されるものがあるから使えない

Ruby では、sjis・UTF-8 の変換は、ファイル読み書き時に指定できる。

CRLF・LF の改行コードの違いは、意識したことがない。
chomp とか、どちらの改行コードでも、正常に動く

466 :
【 nkf 】コマンド――文字コードと改行コードを変換する
http://www.atmarkit.co.jp/ait/articles/1609/29/news016.html

これで全角・半角の変換もできる

Perl にも、モジュールもあるのでは?

467 :
>>466
有料ですがnkfのActivePerl用をnamazuというところから購入しましたが、
nkfで変換後、utf8でマッチングが不可能で調査中です。

468 :
ハッシュを要素に持つハッシュへのアクセスについて
ご教示いただけますでしょうか。
下記のコードで、読込は正常に完了しますが、出力が不可能です。
$$を使用したり、試しましたがギブアップです。

#hash.txtの中身(タブ区切り)
#1 10 テスト1
#2 5 テスト2

use Encode;
use utf8;
my %table;
my %rec;

open (FILE, "<:utf8", "hash.txt") or (die "$!");
while(my $line = <FILE>){
 chomp($line);
 @d = split(/\t/, $line);
 %rec = ('id' => $d[0], 'count' => $d[1], 'name' => $d[2]);
 $table{$d[0]} = \%rec;
 print encode('cp932', $table{$d[0]}{'id'})."\t". encode('cp932', $table{$d[0]}{'count'})."\t".encode('cp932', $table{$d[0]}{'name'})."\n";
}
close(FILE);
print Encode::encode('cp932', "読込完了\n");

foreach my $row (@$wrote_num){
 #出力不可能
 print encode('cp932', $row{'id'})."\t". encode('cp932', $row{'count'})."\t".encode('cp932', $row{'name'})."\n";
}
print Encode::encode('cp932', "$出力完了\n");

469 :
wrote_numが何か分からんけど
my %rec; はwhile内にしたらどうですか
あと、$rowはハッシュのリファレンスだろうから$row->{'id'}では

470 :
>>469
すみません、レス用に書き換えた元がwote_numでした
下記の様に変えましたが、アクセスできません。
意外と難しいですね。
use Encode;
use utf8;
my %table;


open (FILE, "<:utf8", "hash.txt") or (die "$!");
while(my $line = <FILE>){
chomp($line);
@d = split(/\t/, $line);
my %rec = ('id' => $d[0], 'count' => $d[1], 'name' => $d[2]);
$table{$d[0]} = \%rec;
 print encode('cp932', $table{$d[0]}{'id'})."\t". encode('cp932', $table{$d[0]}{'count'})."\t".encode('cp932', $table{$d[0]}{'name'})."\n";
}
close(FILE);
print Encode::encode('cp932', "読込完了\n");


foreach my $row (@$table){
print encode('cp932', $row->{'id'})."\t". encode('cp932', $row->{'count'})."\t".encode('cp932', $row->{'name'})."\n";
}
print Encode::encode('cp932', "$出力完了\n");

実行結果:まだアクセスできません
>hash_test.pl
1 10 テスト1
2 5 テスト2
読込完了
出力完了

471 :
これでいけると思いましたが、玉砕でしたw

foreach my $row (@$table){
 while (my ($id, $count, $name) = each(%row)){
 print encode('cp932', "$id\t$count\t$name\n");
}

472 :
これでいけました!
foreach my $row (keys %table){
 print encode('cp932', "$table{$row}{'id'}\t$table{$row}{'count'}\t$table{$row}{'name'}\n");
}
>hash_test.pl
1 10 テスト1
2 5 テスト2
読込完了
1 10 テスト1
2 5 テスト2
出力完了

ただ、key を外して foreach my $row (%table)とすると下記の通り改行が入ります
1 10 テスト1

2 5 テスト2

出力完了

473 :
これで全てのハッシュ要素を出力できますが、
カラム順が不確定になってしまいますね。
ハッシュなので仕方ないことですかね。

foreach $row (sort keys %table) {
 foreach $col (sort keys %{$table{$row}}) {
 print encode('cp932', "$table{$row}{$col}\t");
}
print "\n";
}
>hash_test.pl
1 10 テスト1
2 5 テスト2
読込完了
5 2 テスト2
10 1 テスト1
出力完了

474 :
>>473
キーだけ別の配列に取っといてそれ使えば?

475 :
>>474
できれば要素をカラム名でアクセスしたいのでハッシュの方がいいのですが、カラム順固定出力は配列しかないということですね。

476 :
両方使えば良いのでは たまにやるよ

477 :
>>473
foreach $col (sort keys %{$table{$row}}) {

foreach $col (qw/id count name/) {
とかでは? keyの名前も順番も分かってるんだし。

478 :
自分が昔質問したことにたいして今なら回答できる
<> は <STDIN> の単なる略ではなく
@ARGV が捕れない副作用があった
そこに詰まっていた

#!/usr/bin/env perl
use 5.010;


if (-p STDIN) {

print "May be pipe is used. I've got STDIN as below\n";

# my @lines = <STDIN>; # when <> used, perl think no @ARGV

map {state $i; ++$i;print "$i $_" } <STDIN>;

}

else {

print "This may be just single running.\n";

}


map {state $i; ++$i; print "$i argment found ==> $_\n"} @ARGV;

479 :
タグを除去したいのですが、<>も文に入っているため
<.*?>ではなく<("[^"]*"|'[^']*'|[^'">])*>を使いたいのですが
perl -pe '<("[^"]*"|'[^']*'|[^'">])*>'
にする場合どれどれをエスケープすればよいでしょうか?
’だけだと動きませんでした。
perl -pe '<("[^"]*"|\'[^\']*\'|[^'">])*>'

480 :
除去?だったらs/パターン//gみたいにやらないと何も変わらないのでは?
てか、それエラーにならないの?

481 :
2chの書き込みのほう、つけ忘れてました
perl -pe 's/<("[^"]*"|'[^']*'|[^'">])*>//g'
です

perl -pe 's/<.*?>//g'は動くんですけど

perl -pe '<("[^"]*"|\'[^\']*\'|[^'">])*>'だと動かないんですよね

482 :
またやっちゃった
perl -pe 's/<("[^"]*"|\'[^\']*\'|[^'">])*>//g'

483 :
こうか?
perl -pe 's/<("[^"]*"|'"'"'[^'"'"']*'"'"'|[^'"'"'">])*>//g'
perlというよりシェルのシングルクォートの問題

484 :
そこまでするくらいなら HTML::Parser を使う方がいいと思うよ。

485 :
>483
できました!、ありがとうございます。
'を'""'で括るのですね
なんで\でエスケープにならないんでしょうね

486 :
パーサーも一度使ってみたんですが
<p>hoge</p><p>hoge</p>
pタグが一行に2つあると誤作動したりするんですよね

487 :
その誤作動がパーサーのせいかどうかは判らないが、少なくとも
HTML::Parser でそんなことは起こらないから安心してほしい。
たとえばテキスト部分だけを出力したいならこんな感じでできる。

my $parser = HTML::Parser->new(
text_h => [sub { print( $_[0]) },'text'],
);
$parser->parse_file( \*STDIN);

488 :2019/08/31
>487
参考になります。
パーサーもいろいろ種類あるみたいですね。

自分の使ってたのはhtml-xml-utilsというやつでした。

【Java】DIコンテナって本当に便利か?
【MACRO】Google Apps Script 質問スレ【DRIVE】
C言語なら俺に聞け 153
sizeof(char)が必ず1でも、省略すべきではない
七行プログラミング part6
【実験台】 Python 3.0 のお勉強 Part 1 【非互換】
今までに見たソースコードで一番感動したのは deux
いもうとデスクトップを実際に作ってみないか?3
学ぶ言語は「広く浅く」か「狭く深く」のどっちか
+ JavaScript の質問用スレッド vol.123 +
--------------------
これくらいの体型の女の子が好き 25の2
【日本政府】感染終息後に「高速道路無料化」検討 観光業を支援
HiHi Jets 猪狩蒼弥アンチスレ Part.2
【HKT48】植木南央応援スレ☆50【なお】
LABI ヤマダ電機総合Part33 テックランド共通スレ
☆スロ板住民の雑談★7613 アチキ、解禁。(*‘ω‘ *)╰⋃╯(*‘ω‘;*)
鉄血叩いてるのって戦争なめてるだろ
【バーチャル】hololiveファンスレ#10895【youtuber】
未婚で相手のいない男性よ、婚約指輪を買おう!
つるの剛士
朝日火災
【かまちょ笑】草刈り竜司【文盲笑】
ヒルクライム情報交換スレ 44%
安倍首相また「悪夢のような民主党政権」 ネット「悪夢のような鳩山、管」「言い続けていかにゃならんなこれは」「悪夢だったのは事実
女子高生×バイク!「ばくおん!!」 その205
[wii]スゴロクロニクル
山形県のオカルト・心霊スポット 2霊目
荒らしと自演を繰り返す自毛植毛スレのステマおじさん
日本各地の景気を報告するスレ@203
【MHFZ】40代無職BBAめらるー@★が晒しに成り済まし独り言で999まで埋めるも1000だけ取られて大発狂w
TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼