1デフォルトの名無しさん2012/10/07(日) 00:48:39.00
どうぞー
2デフォルトの名無しさん2012/10/07(日) 00:50:26.06
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
京都大学霊長類研究所
3デフォルトの名無しさん2012/10/07(日) 01:10:26.82
4デフォルトの名無しさん2012/10/07(日) 01:46:15.82
マジレス?
じゃあ遠慮なく
>>1
板荒らすために立てたんじゃないならさっさと削除依頼しろクズ
本スレでさえ閑古鳥が鳴いてるのに次スレ立てるから荒らし予備軍の温床になってんだよ
今日の糞スレ乱立を見ればわかるだろ 5デフォルトの名無しさん2012/10/07(日) 01:55:03.21
6デフォルトの名無しさん2012/10/07(日) 01:56:03.28
7デフォルトの名無しさん2012/10/07(日) 02:35:42.93
8デフォルトの名無しさん2012/10/07(日) 10:56:38.94
9デフォルトの名無しさん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;
# 以上の内容は、日本語処理が解らない人でも、とりあえず日本語処理ができてしまう
# おまじないです。
10デフォルトの名無しさん2012/10/07(日) 11:07:51.43
上記の記述は1行で書くこともできます。
use encoding 'cp932'; # [Perl 日本語処理]
初心者にはこれが一番あってると思います。
徐々に経験を積んで、難しい記述にチャレンジしていきましょう。
11デフォルトの名無しさん2012/10/07(日) 14:00:31.86
そもそもプログラム初心者にPerl選択などありえない
12デフォルトの名無しさん2012/10/07(日) 17:42:36.30
初めてのPerl第6版と赤らくだ本は分量的にも内容的にもほぼ同じだしな
13デフォルトの名無しさん2012/10/07(日) 19:28:07.17
14デフォルトの名無しさん2012/10/07(日) 21:24:43.64
↑ながらく機能していない上にCGIの質問をすると怒られます。
Perlの質問をするとPHPの回答が返ってきます。
それでも構わないなら、どうぞ。
15デフォルトの名無しさん2012/10/07(日) 21:30:12.99
やっぱりPHPの方がいいんですかね。
16デフォルトの名無しさん2012/10/07(日) 21:56:55.72
プログラム初心者じゃなくてPerl初心者な。PHPは卒業な。
17デフォルトの名無しさん2012/10/07(日) 22:29:39.78
18デフォルトの名無しさん2012/10/07(日) 23:09:44.68
PHPでいう、in_arrayは
Perlではなんて関数ですか?
19デフォルトの名無しさん2012/10/07(日) 23:44:10.62
grepでいいんじゃないか?UNIXの文化な
20デフォルトの名無しさん2012/10/07(日) 23:45:55.55
>>19
ありがとうございます。
それからもうひとつ、
array_uniqueに相当する関数はどれでしょうか? 21デフォルトの名無しさん2012/10/08(月) 00:16:19.24
ハッシュのキーにして、最後にキーを取り出す
22デフォルトの名無しさん2012/10/08(月) 00:29:08.71
my %uniq = map { $_ => 1 } @array;
my @array_uniq = keys %uniq;
23デフォルトの名無しさん2012/10/08(月) 00:37:42.34
長いな。
24デフォルトの名無しさん2012/10/08(月) 01:25:04.19
初心者に変なもん奨めるんじゃないぞ
25デフォルトの名無しさん2012/10/08(月) 01:37:02.22
%u = map {$_,1} @a;
@u = keys %u;
#チヂメテミタ
26デフォルトの名無しさん2012/10/08(月) 10:06:15.64
my @array_unique = keys %{{map {$_,1} @array}};
perl 5.14 以降なら
my @array_unique = keys {map {$_,1} @array};
27デフォルトの名無しさん2012/10/08(月) 11:07:41.23
ひと頃List::Utilが湧いたのはPHPとの比較が原因か
28デフォルトの名無しさん2012/10/08(月) 13:27:23.56
29デフォルトの名無しさん2012/10/08(月) 14:21:09.99
んなこたあない。
30デフォルトの名無しさん2012/10/08(月) 14:24:32.17
ここでList::Utilを持ち出し、直後からスレが荒れるのが定番。
31デフォルトの名無しさん2012/10/08(月) 14:31:44.97
あるサイトにアクセスして数値を取得してreturn $num;で値を返す関数を作ったとします
get_num();
my $num=200
while(1)
{
if(new_num() >=$num)
{
okと表示
}
}
okがうまく表示されません
毎回get_numでサイトにアクセスして取得しているというのが悪いんでしょうか?原因がわかりません教えてください
32312012/10/08(月) 14:33:07.32
new_num()で取得した値は $numより大きいです
大きいのになぜか比較されずにスルーで何も表示されずループです
33デフォルトの名無しさん2012/10/08(月) 14:39:56.54
>あるサイトにアクセスして数値を取得してreturn $num;で値を返す関数を作ったとします
↑これは get_num() のことですか?new_num() のことですか?
get_num() は return $num; しないんですか?戻ってきた値は使わないんですか?
>毎回get_numでサイトにアクセスして
↑ get_num() は while の中にありませんが、この外にループがあるんですか?
34デフォルトの名無しさん2012/10/08(月) 14:43:57.35
use strict; 落ちか
腕を上げたようだな、モダンPerl。
35Perl忍者 ◆M5ZWRnXOj6 2012/10/08(月) 14:44:44.21
>>31
$|=1;
それかprint "ok\n";
改行いれとけ 36デフォルトの名無しさん2012/10/08(月) 14:46:12.89
改行入れてもループは終わらんだろw
37デフォルトの名無しさん2012/10/08(月) 15:14:18.81
>>31
マジレスすると
お前みたいな低脳には無理 38デフォルトの名無しさん2012/10/08(月) 15:34:01.73
荒らしの連立てしたスレを伸ばそうとしてる>>31は荒らし
消えろやゴミが 39デフォルトの名無しさん2012/10/08(月) 15:43:26.69
40デフォルトの名無しさん2012/10/08(月) 16:04:33.60
41デフォルトの名無しさん2012/10/08(月) 16:16:12.31
42デフォルトの名無しさん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 にアクセスするなら忘れるんじゃねぇぞ
}
43デフォルトの名無しさん2012/10/08(月) 18:01:11.94
なんで>>31みたいなカスがプログラミングなんかに手を出したのか疑問。 44デフォルトの名無しさん2012/10/08(月) 18:06:38.78
>>43
そんなのが疑問になるのは
お前が馬鹿だからじゃないだろうか。 45デフォルトの名無しさん2012/10/08(月) 18:11:25.50
46デフォルトの名無しさん2012/10/08(月) 18:20:57.42
47デフォルトの名無しさん2012/10/08(月) 18:46:17.85
文字列 $str の末尾の「.cpp」を「.o」に置換し新たな文字列 $new_str を生成したいのですが
s/// だと元文字列を書き換えてしまいます
コピーしてから置換でも良いのですが、書き換えずに置換する関数や演算子はないでしょうか?
48デフォルトの名無しさん2012/10/08(月) 19:10:50.54
49デフォルトの名無しさん2012/10/08(月) 19:13:40.44
50デフォルトの名無しさん2012/10/08(月) 19:24:24.71
>>47のような害虫はム板から駆除しなければならない。 51デフォルトの名無しさん2012/10/08(月) 19:35:47.99
52デフォルトの名無しさん2012/10/08(月) 19:47:46.05
>>47
演算子一覧くらい検索すればいくらでも出てくるだろ
それすら検索できないって本物の精神異常? 53デフォルトの名無しさん2012/10/08(月) 19:56:47.23
54デフォルトの名無しさん2012/10/08(月) 20:15:10.88
煽り叩きに加えて今度はイコール厨まで参戦ですか
ほんとスレの空気を悪くすることに関しては息ぴったりですねお前ら
55デフォルトの名無しさん2012/10/08(月) 20:23:58.30
このスレは>>31>>47叩き基地害イコール厨等まともじゃない奴らの隔離スレだからな。 56デフォルトの名無しさん2012/10/08(月) 20:35:31.31
>>51
ありがとうございました
手元の資料に無かったので調べたら割と最近の仕様みたいですね 57デフォルトの名無しさん2012/10/08(月) 20:43:06.24
58デフォルトの名無しさん2012/10/08(月) 20:48:41.51
>>57
さっさと初心者を卒業しろよってことかな?
出所者を見送る看守のようだ。 59デフォルトの名無しさん2012/10/08(月) 20:49:06.45
60デフォルトの名無しさん2012/10/08(月) 22:37:14.94
>>47はマジでクズ
2chを代理検索か何かと勘違いしてないか? 61デフォルトの名無しさん2012/10/08(月) 22:47:29.05
質問してこういう扱いうけて荒らしてるのかこの粘着くんはw
62312012/10/08(月) 23:31:22.78
>>35
うまく出力されました
$|=1;とは何ですか?
改行の理由も教えてください
>>42
$|=1;をつける理由は?
lastだとループが終わってしまうので 63デフォルトの名無しさん2012/10/08(月) 23:37:12.37
>>32
>大きいのになぜか比較されずにスルーで何も表示されずループです
ループして困っているのか、ループしたいのか質問をはっきりしろ 64デフォルトの名無しさん2012/10/08(月) 23:46:28.06
>書き換えずに置換する
何をしたいのか
65デフォルトの名無しさん2012/10/08(月) 23:58:56.98
こういう糞みたいな質問してる連中がム板のレベルを下げてる
66デフォルトの名無しさん2012/10/09(火) 01:13:51.30
67デフォルトの名無しさん2012/10/09(火) 03:50:12.06
>>61
荒らしは質問すらしてないよ。
質問者になりすましての煽りは入れてるが。 68デフォルトの名無しさん2012/10/09(火) 11:14:53.75
何で分かるの?
あ、ご本人様ですか。
荒らしもやりながらこんな場末の糞スレチェックまでご苦労様です。
69デフォルトの名無しさん2012/10/09(火) 13:42:01.38
プロキシのレスポンスタイム計るにはどうするの?
教えてくれ
6.5s
5,8sとかあるだろ?あれ
70デフォルトの名無しさん2012/10/09(火) 14:26:59.97
それはPerl限定の話でもなさそうだし、流石にWebProg板で聞いてくれ
71デフォルトの名無しさん2012/10/09(火) 16:16:14.44
PHPでいうマジッククォートみたいなのない?
sjisで送信するとき表とかがエスケープされずにエラーでちゃうんだけど
自動でエスケープしてくれる関数みたいなの無いの?
教えてください
72デフォルトの名無しさん2012/10/09(火) 16:57:01.82
自分で調べられないお前にはPHPがお似合いだ
73デフォルトの名無しさん2012/10/09(火) 17:05:55.35
>>71
ふたつのことを混同してしまってると思われる
「Perl XSS対策」「Perl Unicode」でそれぞれググれ
そして前者(XSS)にに関しては今後はWebProgへどうぞ 74デフォルトの名無しさん2012/10/09(火) 17:13:03.31
75Perl忍者 ◆M5ZWRnXOj6 2012/10/09(火) 17:33:58.22
76デフォルトの名無しさん2012/10/09(火) 17:49:33.02
77デフォルトの名無しさん2012/10/09(火) 20:44:10.43
PHPのマジッククォートとSjisっておんなじものなのか?
微妙にやること違うと思うぞw
78デフォルトの名無しさん2012/10/09(火) 22:09:35.85
初心者でUnicodeはきついかもな
ごちゃごちゃしてて何がなんだかさっぱり分かんない
初心者にはshiftjisがいい
79デフォルトの名無しさん2012/10/10(水) 00:13:36.93
Perlスレの頭にUnicode絡みのテンプレなかったっけ
80デフォルトの名無しさん2012/10/12(金) 00:36:02.70
require 'jcode.pl';
だっけ?
81デフォルトの名無しさん2012/10/12(金) 01:02:04.55
>>80
確信ないなら書くなゴミ
さっさと失せろキメェんだよ 82デフォルトの名無しさん2012/10/12(金) 01:03:01.58
83デフォルトの名無しさん2012/10/12(金) 01:38:15.26
84デフォルトの名無しさん2012/10/12(金) 02:28:37.13
85デフォルトの名無しさん2012/10/12(金) 02:37:31.52
86デフォルトの名無しさん2012/10/12(金) 03:28:56.95
87デフォルトの名無しさん2012/10/12(金) 12:02:40.96
88デフォルトの名無しさん2012/10/12(金) 15:53:07.74
いつもの基地外は本スレに行けよ
89デフォルトの名無しさん2012/10/12(金) 18:49:11.85
↑はい、いつものキチガイ入りましたー
90デフォルトの名無しさん2012/10/12(金) 21:16:15.75
88はいつもただの質問者を荒し扱いしたりしてる奴だろう、放置よろ。
91デフォルトの名無しさん2012/10/28(日) 18:01:11.94
92デフォルトの名無しさん2012/10/28(日) 20:13:19.68
初心者の彼女がjacode.pl使ってて時代の変化を感じた
93デフォルトの名無しさん2012/10/31(水) 00:29:58.66
いつまでもEncodeでエンコしててもしょうがないしな
94デフォルトの名無しさん2012/11/06(火) 01:38:15.62
95デフォルトの名無しさん2012/11/12(月) 19:41:16.44
ActivePerl5.16.1使用中です。
---
print DAT @dat;
---
このようにして配列を書き出そうとしたのですが
なぜかテキストファイルに繁栄されません。
何か情報をご存知の方いらっしゃいませんか?
96デフォルトの名無しさん2012/11/13(火) 05:02:27.13
ファイルハンドルであろうDATのopen文はいかに
97デフォルトの名無しさん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;
}'
98デフォルトの名無しさん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;
}'
99デフォルトの名無しさん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;だけ殺して一見うまく動いているのでそれで利用を開始しました。
個人の趣味の自動化目的なのでそんな感じでまずはゴーしてしまいます。
100デフォルトの名無しさん2012/11/16(金) 00:44:04.42
utf8プラグマは作ったひとは使うのが簡単だと考えているんだろうけど、
使うひとにとっては非常に難しい。こういった処理モデルを理解しろと
いうほうに無理がある。結論としてはutf8プラグマは使わないほうが
よい。
101デフォルトの名無しさん2012/11/16(金) 14:34:35.11
もう省略の美学とか無くていいから(涙)
ぜんぜん意味がわからない
たすけて
102デフォルトの名無しさん2012/11/16(金) 21:20:57.16
utf8にはまるのは日本固有らしい。海外では当初から見切りをつけていて
使われることはない。
103デフォルトの名無しさん2012/11/17(土) 00:49:53.31
この方法で重複を削除した場合
リストの順番は変更されますか。
それとも、重複が削除されるだけで、
順番はそのままですか。
my %hash = ();
foreach (@list) {
$hash{$_}++;
}
my @unique = keys %hash;
print @unique;
ご教示ください。
104デフォルトの名無しさん2012/11/17(土) 01:33:36.49
105デフォルトの名無しさん2012/11/17(土) 01:55:32.07
ゲーッ
ありがとうございました・・・
106デフォルトの名無しさん2012/11/17(土) 17:04:11.19
フリーソフトの利用は自己責任。
utf8作ったひとが助けてくれるわけじゃない。
自分の理解できる範囲内で使えってこった。
107デフォルトの名無しさん2013/01/03(木) 08:49:11.83
文字コードとしてのUTF-8を理解してもutf8プラグマの挙動は別物
オレオレ実装むき出しの仕様で理解できず使いづらい
そこで省略の美学になる
108デフォルトの名無しさん2013/01/03(木) 09:02:50.69
至らない実装は利用者が補えるが、オレオレ仕様は直せない、か
109デフォルトの名無しさん2013/01/05(土) 20:10:35.16
2chのソースコード読みたい
どっかに落ちてないかな?
110デフォルトの名無しさん2013/01/06(日) 06:16:44.13
クレクレ厨か糞がキメェんだよ
111デフォルトの名無しさん2013/01/07(月) 23:54:06.18
KENT本の中に似た外見のBBSってなかったっけ?
112デフォルトの名無しさん2013/01/08(火) 01:05:42.37
「?」じゃねーだろ確認して書き込めやゴミが
113デフォルトの名無しさん2013/01/08(火) 01:51:30.58
114デフォルトの名無しさん2013/01/08(火) 05:40:51.47
>>112
糞スレ乱立してた基地害が立てたスレの一つで何言ってんの?
ここは落書き帳だよ? 115デフォルトの名無しさん2013/01/09(水) 00:11:00.04
www.kent-web.com/bbs/
「2ch風」のマルチスレッド式掲示板です。トリップ機能、age/sage機能、
ID表示機能などが可能です。また表示部分をテンプレートファイルとし、
ユーザサイドでのレイアウト改造やデザイ改造が容易です。
116デフォルトの名無しさん2013/01/09(水) 17:34:57.36
サイトの宣伝乙
117デフォルトの名無しさん2013/01/10(木) 16:07:28.37
118デフォルトの名無しさん2013/01/11(金) 05:12:28.86
>>115
こんなところに来てまでステマとかマジで気持ち悪いよお前
アタマおかしいんじゃねーの 119デフォルトの名無しさん2013/01/12(土) 01:08:29.34
>>109に回答するのが初心者スレのみっちょんだから 120デフォルトの名無しさん2013/01/12(土) 03:52:42.37
CGIの紹介はスレ違い
本当にここには基地害しか残ってないんだな
121デフォルトの名無しさん2013/01/12(土) 10:20:36.14
122デフォルトの名無しさん2013/01/12(土) 17:34:17.42
>>120
お前、CGI知らないのか?
Common Gateway Interface(コモン・ゲートウェイ・インタフェース、
CGI)は、ウェブサーバ上でユーザプログラムを動作させるための仕組み。
件の掲示板を実現しているプログラムはPerlスクリプトだぞ?
CGIとPerlスクリプトの違いも分からないのか? 123デフォルトの名無しさん2013/01/12(土) 19:33:15.48
>>122の言ってることは分かるがなぜここでそれを言うのか分からない。 124デフォルトの名無しさん2013/01/12(土) 19:43:06.23
ここはゴミの隔離スレだからね
125デフォルトの名無しさん2013/01/12(土) 21:38:40.14
>>123
落書き帳と同じだから必ずしも会話が成立してる必要はないんだよ
発作的に書きたくなった内容を書き殴ればいい
このスレにいるのは心を病んでる奴がほとんどだからまともに相手してるとこっちまで病むぞ 126デフォルトの名無しさん2013/01/13(日) 23:14:20.80
>>120
ばかだな、お前以外におれがいることを忘れているぞ 127デフォルトの名無しさん2013/01/19(土) 03:12:42.05
アルパカ本ってどうよ?
リャマ本ほど人気ないみたいだけど
128デフォルトの名無しさん2013/01/19(土) 23:32:55.48
リャマ本をこなしてアルパカ本に進むわけだから当然脱落者がいるわな
リャマ本⇒らくだ本⇒アルパカ本
129デフォルトの名無しさん2013/01/20(日) 00:04:13.22
>>128
え?
らくだ本が間に入る?
あれは上級者向きの本だお 130デフォルトの名無しさん2013/01/20(日) 04:06:34.04
うるさいゴミ
お前が勝手に勘違いしてるだけだクズ
キメェから勘違い野郎は書き込むな
131デフォルトの名無しさん2013/01/20(日) 05:48:09.14
132デフォルトの名無しさん2013/01/20(日) 08:48:48.95
このスレ、気持ち悪いな
Perl使いにも、>>130みたいな気持ち悪い奴が多いから納得 133デフォルトの名無しさん2013/01/20(日) 09:24:26.74
134デフォルトの名無しさん2013/01/20(日) 13:19:52.11
そもそも今のム板にPerlスレ立てること自体荒らし行為
135デフォルトの名無しさん2013/01/20(日) 14:10:46.15
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.net/test/read.cgi/php/1358518487/3-4 Perlコーディング初心者質問スレ Part 67 136デフォルトの名無しさん2013/01/20(日) 14:12:27.88
137デフォルトの名無しさん2013/01/20(日) 14:13:55.60
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.net/test/read.cgi/php/1358196208/4-6 Perlコーディング初心者質問スレ Part 65 138デフォルトの名無しさん2013/01/20(日) 14:17:41.02
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.net/test/read.cgi/php/1343668425/631-635 Perlコーディング初心者質問スレ Part 64 139デフォルトの名無しさん2013/01/20(日) 21:56:15.25
Perl自体がオワコンなのにスレを立てることが間違ってる。
特に新しくPerlを学ぼうなんて正気の沙汰じゃないんだから初心者スレは不要。
せいぜい昔のPerlで作られたシステムの保守をやらされてるSE土方が情報交換するくらいだろ。
140デフォルトの名無しさん2013/01/21(月) 00:12:29.99
昔のPerlも覚えられず、かといって新しいPerlも覚えられない。
悔しいんですね?分かります。
141デフォルトの名無しさん2013/01/22(火) 06:03:34.12
あのぷっくりサスペンダーのおじさんもオワコンなの?最近見ないけど
142デフォルトの名無しさん2013/01/22(火) 07:05:37.78
Perl最強
143デフォルトの名無しさん2013/01/22(火) 21:07:00.40
荒らしが立てたスレ
144デフォルトの名無しさん2013/01/22(火) 23:00:03.67
古いPerlだと新しいソフトが書けないと考えるひとがいるようですね。
たいした仕事できなさそう。
145デフォルトの名無しさん2013/01/23(水) 01:43:22.70
どっちにしてもPerlはオワコン
PHPがここまで進化しちゃうとPerlの存在価値はどこにあるんでちゅかねーw
146デフォルトの名無しさん2013/01/23(水) 01:52:30.08
147デフォルトの名無しさん2013/01/23(水) 04:53:44.35
ごった煮の点で、PHPもPerlににている → Perlとおなじような運命だろう
148デフォルトの名無しさん2013/01/23(水) 05:58:31.38
PHPっていうとWebアプリしか書けないイメージがある
PerlはC言語/シェルスクリプトが担っていた分野をカバーしているので
今後も使われていくだろう
Perlがオワコン説は単に初心者プログラマの脱落を意味しているだけで
もともと使っていたシステム管理者らが使うのをやめることはない
149デフォルトの名無しさん2013/01/24(木) 17:21:48.69
PerlっていうとWebアプリしか書けないイメージがある
PHPは当初よりかなり進化しているので
今後も使われていくだろう
Perlがオワコン説は初心者プログラマがPerlを選らばないとう現実を意味しているから
もともと使っていた老害が使い続けるだけという結末になる
150デフォルトの名無しさん2013/01/24(木) 21:48:04.27
PerlもPHPもどちらも書いてると、PHPの方がクソだと思えてくる。
151デフォルトの名無しさん2013/01/25(金) 00:32:34.81
Perlっていうとぷっくりサスペンダーのおじさんのイメージがある
ときどきアニメを例えに使うあのなぞなぞ好きなおじさんだ
甲高い声が人気なので今後も使われていくだろう
Perlがオワコン説はWindowsユーザがPerlを選ばなくなったとう現実を意味しているから
もともと使っていたJperlを使い続けるしかないということになる
152デフォルトの名無しさん2013/01/27(日) 11:34:47.69
perlからC言語で作った実行ファイルを実行するときC言語のソースが
printf("A");
scanf(); ---Bを入力
printf("C");
のときにこの実行ファイル実行結果ををperlで受け取るときperl側で
ACとなってしまいます。
これを
AB
C
として受け取りたいのですがどうすればいいでしょうか?
153デフォルトの名無しさん2013/01/27(日) 13:15:02.04
>>152
scanf()で受け取った文字列をprintf()してはダメなの? 154デフォルトの名無しさん2013/01/27(日) 13:42:25.19
>>152
自分で調べろよゴミが
そもそもここはスレ立て荒らしが立てたスレだ 155デフォルトの名無しさん2013/01/27(日) 14:22:43.67
>>152
お前みたいな馬鹿にプログラム組んでもらわなくても誰も困らないからさっさと回線切れ。 156デフォルトの名無しさん2013/01/27(日) 23:46:32.04
なんで自分で調べられないん?
157デフォルトの名無しさん2013/01/28(月) 11:00:02.92
158デフォルトの名無しさん2013/01/29(火) 21:18:44.13
futomi's CGI Cafeの「清き一票!(投票CGI)」というフリーのCGIを元に投票項目を増やしたいのですが、HTMLの方で増やしたname属性をCGIの方に反映させる方法がわかりません。
もう2週間ほどPerlについて書いてあるページを調べ回りながら試行錯誤を繰り返しているのですが、どこをどういじればいいのかよくわかりません...
ヒントだけでもいいので教えてください。お願いします。
159デフォルトの名無しさん2013/01/29(火) 21:29:31.69
何で作った奴にきかずに赤の他人にきいてんだ?
しかもタダで教えろとか本当にゴミだなお前。
回線切れ乞食。
160デフォルトの名無しさん2013/01/29(火) 21:37:22.44
>>159
すみません。
2004年に配布されたもので結構昔のものなので製作者様の方に教えてもらうことができなくて、ここなら何かヒントになることだけでも教えていただけると思ったので... 161デフォルトの名無しさん2013/01/29(火) 22:19:55.44
>>160
Perlを最初から勉強すればすむ話だろゴミ
それにそれが情報乞食をする理由になるの?
本当に乞食じゃねぇのこいつ 162デフォルトの名無しさん2013/01/29(火) 22:30:06.20
>>160
Perlを使いこなすために書籍に何万と投資をし、書籍を読んだりコードを書いたりするのに何年と時間を投資し、
そうやって身に付けたものをお前みたいなクズにタダで使う理由は? 163デフォルトの名無しさん2013/01/30(水) 01:17:52.20
投票項目の多いCGIプログラムを入手するのが目的なのか、Perlのスキルを
高めたいのかどっちなんだ?
164デフォルトの名無しさん2013/01/30(水) 01:24:07.81
READMEに全部書いてあったわ、ネタか
1651582013/01/30(水) 02:59:15.11
思ったほど釣れなかった
166デフォルトの名無しさん2013/01/31(木) 19:36:40.96
いつものキチガイしかいないしな
167デフォルトの名無しさん2013/01/31(木) 23:38:52.70
Perlの本質
168デフォルトの名無しさん2013/02/03(日) 23:45:45.37
モダンPerlの本質、な。そこ混同しないように。
169デフォルトの名無しさん2013/03/01(金) 00:35:14.22
モダンPerlを勧めるひとは熱心なあまりキチガイみたいに見えてしまうってこと?
でも本来のキチガイとは違って、モダンPerlやめれば症状が改善されるんだよね?
170デフォルトの名無しさん2013/03/01(金) 04:28:53.25
171デフォルトの名無しさん2013/03/02(土) 01:42:04.04
改善された例を見たことがない。キチガイは自滅してオワコンだ。
172デフォルトの名無しさん2013/03/06(水) 14:29:08.45
俺は間違っちゃいない!世界が間違ってるんだ!
永遠に叫び続ければいいよ。
173デフォルトの名無しさん2013/12/27(金) 05:55:34.37
perl覚えたけど使い道が無い
174デフォルトの名無しさん2013/12/30(月) 19:13:23.07
Sublime2 TextからPerl実行出来るようにしてるが頗る便利
テキストの処理がいつでも出来る
それとフォルダ毎にzip圧縮するときなんかに使ってるわ
D&Dするようなアプリだとフォルダまとめて圧縮しちまうからな
175デフォルトの名無しさん2014/01/18(土) 19:07:08.88
print は引数を省略できるけど、
join は引数を省略できない
どの関数は どの引数を省略できるのか
省略した時はなにがあてはまるのか
の標準関数の分の一覧ってある?
176デフォルトの名無しさん2014/01/25(土) 08:40:46.49
ぬおおperldoc.jpさんありがとおおお!!
177デフォルトの名無しさん2014/01/25(土) 14:34:38.45
プログラミングPerl 改訂版 ママゾンだと1円です
178デフォルトの名無しさん2014/01/25(土) 20:50:09.90
179デフォルトの名無しさん2014/02/02(日) 03:06:31.84
標準出力を乗っ取る機能ある?
普通にprintしてもフィアルに書き出すみたいなやつ
180デフォルトの名無しさん2014/02/02(日) 03:11:10.25
>>179
それって普通リダイレクトでやるもんじゃないの?
そもそも標準出力=「画面とは限らない」ものなんだから 181デフォルトの名無しさん2014/02/02(日) 03:20:11.89
そもそもフィアルってなんだ?
異次元デバイス?
182デフォルトの名無しさん2014/02/02(日) 07:25:47.08
183デフォルトの名無しさん2014/02/02(日) 14:32:34.15
質問かと思ったらただの精神異常だった件。
184デフォルトの名無しさん2014/02/02(日) 19:33:16.71
1851792014/02/02(日) 20:46:01.69
186デフォルトの名無しさん2014/02/03(月) 00:53:32.45
187デフォルトの名無しさん2014/02/13(木) 00:44:22.79
ただの不備を精神異常とか二度と来るなとか罵るのもどうなのよ
だから過疎ってんだよ
188デフォルトの名無しさん2014/02/13(木) 01:00:25.87
という精神異常者の意見。
189デフォルトの名無しさん2014/02/13(木) 06:54:32.76
>>187
Perl関連スレ、何故か荒らしが住み着いてるからなあ 190デフォルトの名無しさん2014/02/15(土) 03:29:16.57
自分が昔書いたプログラムの
a{\%$b}=c
の意味がわかりません
191デフォルトの名無しさん2014/02/15(土) 03:31:13.19
失礼しました正確には
$self->{a}{\%$b}=$c
でした。助けてください。
192デフォルトの名無しさん2014/02/15(土) 04:51:13.29
>>190-191
マジレススレだからマジレスすると、書き込み前の確認すらできないほど頭の悪い奴にプログラミングは向いてない。
早く回線切れ。 193デフォルトの名無しさん2014/02/15(土) 06:01:06.70
ごみがまたパールの保守性の低さを証明してくれましたw
PHPだとこういった事態の発生する可能性がパールより低い
保守性を考えるならPHP
194デフォルトの名無しさん2014/02/15(土) 11:17:17.47
195デフォルトの名無しさん2014/02/15(土) 13:45:31.98
Perlの場合は、保守性を考えると非・オブジェクト指向のほうがいいよ
$self->{a}{\%$b}=$c
は分かりやすくすると
$self->{'a'}->{$b} = $c
になる
ただ $b は本当にハッシュのリファレンスなの?
196デフォルトの名無しさん2014/02/15(土) 13:54:50.01
質問に質問で返す愚図
197デフォルトの名無しさん2014/02/15(土) 14:05:22.33
>>195はコードも読めないのに住み着いてるのか・・・ 198デフォルトの名無しさん2014/02/15(土) 14:22:08.60
あ、>>195であってたw、俺が読めてなかった、ごめんw 199デフォルトの名無しさん2014/02/15(土) 14:42:56.54
最近はこういう有象無象しかいないの?
200デフォルトの名無しさん2014/02/15(土) 14:53:47.23
>>195を貶めてる奴らも
回答できてない時点で同レベル 201デフォルトの名無しさん2014/02/15(土) 14:56:05.17
202デフォルトの名無しさん2014/02/15(土) 17:11:49.28
ちろべとかどうせ海外の話でしょ、ひまわりが載ってないしw
203デフォルトの名無しさん2014/02/15(土) 17:18:51.05
韓国も入ってないだろうな。
韓国ではRubyよりPerlのほうが圧倒的に人気だから
そんなIT人口の多いIT先進国のデータが入ってたら絶対Perlのほうが上位に来るよ。
204デフォルトの名無しさん2014/02/15(土) 20:49:43.46
韓国では何をきっかけにPerl人口が増えたの?例えばO'Reillyとかは韓国語版を
出していないよね?韓国のひとは何を使って勉強したの?教えてえろいひと
205デフォルトの名無しさん2014/02/15(土) 21:42:43.14
>>195
ありがとうございます。それをヒントに少し思い出してきたかも。 206デフォルトの名無しさん2014/02/15(土) 22:15:24.73
こういうクズがコミュニティの足引っ張ってんだよな
207デフォルトの名無しさん2014/02/15(土) 22:32:20.62
208デフォルトの名無しさん2014/02/15(土) 22:34:34.38
そう言ってるだけのお前も迷惑がられてる自覚はないわけね
209デフォルトの名無しさん2014/02/15(土) 23:02:19.74
荒らせればオウム返しでも何でもいいんだな
210デフォルトの名無しさん2014/02/15(土) 23:18:36.63
俺も荒らし…まあそうだろうなあ、自覚は無いようだけどお前も荒らしだよ?
211デフォルトの名無しさん2014/02/15(土) 23:27:26.42
ここは常に罵りあってる気持ちのよいスレッドですね
初心者も質問しやすくて大変良い雰囲気だと思います
212デフォルトの名無しさん2014/02/16(日) 00:15:49.07
>>190みたいな奴がそうなるように
仕向けてるんだよ。 213デフォルトの名無しさん2014/02/16(日) 00:43:26.71
リファレンスをハッシュのキーに使ってもいいの?何か間違えてない?
214デフォルトの名無しさん2014/02/16(日) 00:51:25.65
215デフォルトの名無しさん2014/02/16(日) 00:58:35.57
そもそもPerlを選択する時点でかなり間違えちゃってるから別にいいんじゃね?w
大元で間違ってるのに枝葉の間違いばかり気にする馬鹿ってたまにいるよな。
中国産の野菜は農薬が酷いが、中国産のキャベツと中国産の白菜のどっちが安全か考える馬鹿。
そもそも中国産の野菜を選ぶ時点で間違ってると気付かない馬鹿。
低所得で納税額の少ない社会のお荷物に多い傾向。
216デフォルトの名無しさん2014/02/16(日) 01:09:56.43
>>215
馬鹿というより向上心がないんでしょ
一つ言語を覚えたらそこに落ち着いてしまうタイプだと思われ 217デフォルトの名無しさん2014/02/16(日) 01:49:27.33
向上心のない奴は何やっても駄目、他人に懇切丁寧に教えてもらって半人前とかね
居残りさせられて先生がつきっきりで人一倍教えてるのに50点しか取れない奴いただろ
218デフォルトの名無しさん2014/02/16(日) 09:18:13.70
新たにPerl覚える人間が居ないとでも?
良く出来たツールだと思うよ、ホント
219デフォルトの名無しさん2014/02/16(日) 13:55:54.78
Perlを覚えられないひとのためにできたのがPHP。PHPはPerlの機能限定版。
だからCGIにしか使えない。
220デフォルトの名無しさん2014/02/16(日) 13:59:57.82
流石に、PHPをCGIで使う例は稀かと
221デフォルトの名無しさん2014/02/16(日) 23:07:15.10
222デフォルトの名無しさん2014/02/17(月) 01:44:26.48
PHP使うくらいならPerl4を使うけどな、このスレ的にも
223デフォルトの名無しさん2014/02/17(月) 08:01:50.33
そもそも用途が全然違うものを比べる意味が解らないな
224デフォルトの名無しさん2014/02/17(月) 11:11:07.50
Perl使える奴がわざわざぺちぴー入れてまで使う理由がない
225デフォルトの名無しさん2014/02/17(月) 21:20:39.98
>>222
PHPのクラスやトレイトを
Perl4でどうやって実装するの? 226デフォルトの名無しさん2014/02/17(月) 23:26:58.49
必要のないものをどうして実装する必要があるのだ
227デフォルトの名無しさん2014/02/18(火) 01:23:53.24
2つも3つも糞スレ建ててんじゃねーよゴミPerler
228デフォルトの名無しさん2014/02/18(火) 02:13:13.87
それぺちぱーだろ
229デフォルトの名無しさん2014/02/18(火) 22:40:42.68
>>226
まず必要あるかないかは、必要あるという前提にしましょう。
別にPHP専用用語ではないのだから、世界的には必要あるという流れです。
その前提で、どうやって実装するのか答えてください。 230デフォルトの名無しさん2014/02/19(水) 01:19:55.57
必要あるやつが実装すればいいだけのことだな
231デフォルトの名無しさん2014/02/19(水) 15:50:16.30
これからは質問者が来ても全部>>230のレスしか返りません。 232デフォルトの名無しさん2014/02/19(水) 20:01:53.86
#!/usr/bin/perl
$buffer = $ENV{QUERY_STRING};
@pairs = split( /&/, $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デフォルトの名無しさん2014/02/19(水) 20:04:58.23
上みたいなプログラミングを組んで、A=とB=にそれぞれ任意の数字を入れるとA*Bの答えが表示されるようにしたいんですが、
いざ実行してみても上のプログラミングがそのまま表示されるだけで正しい結果が得られないのですが、
どうしたらよいでしょうか。
234デフォルトの名無しさん2014/02/19(水) 20:09:03.95
というか、どこかおかしいところがあるでしょうか?
235デフォルトの名無しさん2014/02/19(水) 20:33:02.58
>>232-234
おかしいのはお前の頭だ
基本的なこともできてないくせに他人に質問とか頭腐ってんじゃねーの 236デフォルトの名無しさん2014/02/19(水) 20:36:13.45
>>234
>>232,>>233が板違いだということに気付かないのがおかしい。
平気で板違いの書き込みをするキチガイは迷惑。
お前みたいなクズはリアルでも迷惑がられてるんだから自覚しろ。 237デフォルトの名無しさん2014/02/19(水) 20:41:12.79
>>232=基礎をやらずにいきなりプログラミングから入る典型的なゴミ
目的達成までの手順すら把握できてないからプログラミング以前の問題
何やっても駄目な奴のパターン
人生乙 238デフォルトの名無しさん2014/02/19(水) 20:41:52.31
しね
239デフォルトの名無しさん2014/02/19(水) 20:47:40.29
240デフォルトの名無しさん2014/02/19(水) 20:49:37.80
一人芝居乙ですwwww
241デフォルトの名無しさん2014/02/19(水) 20:50:45.28
>上みたいなプログラミングを組んで、A=とB=にそれぞれ任意の数字を入れるとA*Bの答えが表示されるようにしたいんですが、
>いざ実行してみても上のプログラミングがそのまま表示されるだけで正しい結果が得られないのですが、
日記はブログに書け
>どうしたらよいでしょうか。
今すぐプログラミングやめろ
そして二度とくるな
242デフォルトの名無しさん2014/02/19(水) 20:53:44.83
Perl系スレは質問者が叩かれると張り切って答える奴がいるから 質問したら自演で自分を叩くのが常套手段
243デフォルトの名無しさん2014/02/19(水) 20:56:43.89
>>234
スレ違いのネタで荒らす以外やることないわけ? 244デフォルトの名無しさん2014/02/19(水) 20:59:52.26
スレ違いどころか板違い
頭が悪いにも程がある
発達障害かもな
245デフォルトの名無しさん2014/02/19(水) 21:03:24.03
246デフォルトの名無しさん2014/02/19(水) 21:11:38.56
>>232
PHPなら一瞬で片付く案件
<?php
$x = $_GET['name1'] * $_GET['name2'];
echo( $_GET['name1'] . " * " . $_GET['name2'] . " = " . $x );
?> 247デフォルトの名無しさん2014/02/19(水) 21:16:25.09
>>234
入門書1冊読めば大抵書いてあるはずだが・・・
本1冊買えない乞食か?
そんなに金がないならプログラムなんかやめてバイトでもしたほうがいい
日雇いでも書籍1〜3冊買える金もらえるぞ 248デフォルトの名無しさん2014/02/19(水) 21:27:19.38
初心者スレってかいてあるだろーが字よめねぇのかよカス
249デフォルトの名無しさん2014/02/19(水) 21:34:53.78
書籍すら読めないのは初心者以前に脳に異常がある
250デフォルトの名無しさん2014/02/19(水) 21:42:16.32
>>248
だよね。
初心者だったらスレ違いだろうが板違いだろうが
気違いだろうが許されるよね。 251デフォルトの名無しさん2014/02/19(水) 22:23:35.20
>>250
板違いは許されんよ。
基地外はスルーだよ。
頭悪いのはテキトーに対応するべきだよ。 252デフォルトの名無しさん2014/02/20(木) 01:17:13.12
初心者は自力で解決しようとしない奴のことではないぞ
253デフォルトの名無しさん2014/02/20(木) 19:53:03.78
>>232
A*B = $A * $B
の部分を
A*B = @{[ $A * $B ]} 254デフォルトの名無しさん2014/02/20(木) 20:41:02.18
255デフォルトの名無しさん2014/02/21(金) 00:11:06.41
と荒らしが申しております
256デフォルトの名無しさん2014/02/21(金) 01:00:44.16
>>255を見れば分かるが
「板違いは荒らし」という人間 = 荒らし
この思考回路がPerl厨 257デフォルトの名無しさん2014/02/21(金) 02:50:14.54
>>256
残念ながら、思考回路も間違ってるしPerl厨でもないなあ
板違いの指摘そのものは問題ではないよ、実際のところ >>232 は板違いだしな
ただ板違いへの対応ってのは
・板違いと指摘する
・徹底してスルーする
であるし
>>254 が板違いのゴミと呼ぶ >>253 は
「板違い」ではなく「板違いに誤った対応をした人物」でしかない。
しかも内容は相手を煽るような罵倒語ばかり。
誤った煽りは、結果的にはその人物の発言を増やすことになる。
だから >>254 も荒らしってことなんだよ。
ああ、荒らしにレスするのも荒らしだからな
俺が荒らしと言われても、勿論構わないよ?
荒らしにレスしたことには間違いないしな。 258デフォルトの名無しさん2014/02/21(金) 02:51:46.89
>「板違いは荒らし」という人間 = 荒らし
Perl厨はいちいちこんなこと考えてないと思うぞ。
単に 気に入らない奴=荒らし ってことだと思われる。
259デフォルトの名無しさん2014/02/22(土) 22:30:28.45
質問させてください。
現在、NEなのですが、社内SEを目指しています。
その時に、サーバ作業を簡単に処理させる言語が必要にりそうなのですが、
Perlは向いていますでしょうか?
掲示板とかを作るつもりはありません。作業の効率化が目的です。
隣の席のプログラマさんに聞くと、
Perlは古くてCGIにはもう未来がないよー、ってお勧めされないのですが…
260デフォルトの名無しさん2014/02/22(土) 23:19:05.46
>>259
IT系で上を目指そうって人間に何でPerlなんて選択肢があるわけ?
そこらへん考えたほうがいいよ。
SEならITに関しては常に最新の動向を知るためにアンテナ張ってなきゃならないし、
アンテナ張ってればPerlがいかに駄目かというこてが分かる。
SE目指すならその辺りを自分で調べられるようになってたほうがいい。 261デフォルトの名無しさん2014/02/22(土) 23:25:59.25
>>259
PHPのほうがいい
作業を簡単に処理させるスクリプトとかって最初はそのつもりがなくても便利ならそのまま他のものを作るときに組み込んだりする
エンジニア以外でも有用な場合はWebインターフェースにして提供することなるけどその場合にPHPで書いてあるとインターフェース作るだけですぐに提供できる 262デフォルトの名無しさん2014/02/22(土) 23:28:04.79
>>259
マジレスすると今現在はRuby
但し3ヵ月後、半年後は分からん
自分でその情報を追えないならSEはやめとけ
今現在既に追えてないみたいだけど 263デフォルトの名無しさん2014/02/22(土) 23:50:35.64
>>259
そもそもその文脈でCGIは全く関係ないよ。そこに気付けないなんて釣りだろ? 264デフォルトの名無しさん2014/02/22(土) 23:56:23.80
>>260-263
ありがとうございます!
javaか、PHPか、perlで悩んでました。
色々調べると、PHPが入り易そうなので、、
明日、本屋に行って、決めます。
※CGIは、掲示板とか作るのであって、検索とかするのとは違うなあ、
と思いながら、プログラマさんの意見を聞いていました。 265デフォルトの名無しさん2014/02/23(日) 00:03:57.16
266デフォルトの名無しさん2014/02/23(日) 00:08:16.47
PHPが第一候補だったのですが、某サイトで、
PHPは、WEB系以外には、まったく意味がない、との様なコメントがあり、困りました。
javaは、いきなり入るには、まだ敷居が高いかなと悩みました。
perlは、単に簡単な、検索や置換には適しているようなコメントで一気に候補に挙がりました。
これらから悩んでいたんです。コメントありがとうございます。
267デフォルトの名無しさん2014/02/23(日) 00:20:28.63
>>266
そのコメントとやらの投稿日時と信憑性も確認しろよ
まさか去年の夏以前の投稿で、しかも第一線で活躍してい"た"奴の投稿じゃないだろうな
3ヵ月以内の投稿で、しかも第一線で活躍してい"る"人の投稿なら信用しろ
そしてそういう人ならまずPerlを候補に挙げることはない
まぁ第一線で活躍してるわけでもない俺のこんな匿名の投稿も信憑性がないだろうから
第一線で活躍してる人がPerlなんか使わないということは自分の目で確認してくれ 268デフォルトの名無しさん2014/02/23(日) 00:24:33.24
>>267
投稿日時、第一線は確認していませんでした。
すみません、助言、ありがとうございます。 269デフォルトの名無しさん2014/02/23(日) 00:27:42.14
>>266
PHPがWeb系以外に使えんのは本当
Perlでも良いけど、RubyやPythonも有効だよ
まあ、まずは最初にシェルスクリプトだけどね 270デフォルトの名無しさん2014/02/23(日) 00:38:05.80
と言うか、PerlスレにPHPのこと聞く時点で釣り
271デフォルトの名無しさん2014/02/23(日) 00:39:36.75
>>269
>PerlとLispが結婚して隔世遺伝が黒魔術で生まれた言語。
>Javaは硬度8くらい、Pythonは6くらいになるのに対して、Rubyは3くらいになる。
との記事を見つけました。いつの記述かわからないのですが(汗)
Rubyも明日、本屋で漁ってみます。ありがとうございます。 272デフォルトの名無しさん2014/02/23(日) 00:40:48.81
>>270
すみません。退散します。
みなさん、マジレス、ありがとうございます。 273デフォルトの名無しさん2014/03/05(水) 06:22:38.93
>>232-234
_EOM_なんて使っちゃだめだよ。見づらい。
print "Content-type: text/html\n\n";
print "<html>";
print "<body>";
print "A*B = $A * $B";
print "</body>";
print "</html>"; print "あいうえお";
↑これを文字コードをeuc-jpで保存してコマンドプロントからこのファイルを実行して
コマンドプロンプト上に文字化けなく あいうえお と出力させるにはどういうコードを追加すればいいの?
>>274はちょっと疑問に思っただけで何かするのに必要なワケじゃないので無理して
答えようとしないで下さい。たぶんちょっとググった程度で分かるようなことではないです。 >>276
うおお、すごい、あっさり出来てしまった・・。
今日一日↓こんなのでやろうとして泥沼にハマってました。
use encoding "euc-jp";
binmode STDOUT, ':encoding(cp932)';
スーパーハカーさんどうもありがとう〜 print +(3,2,1,),"\n";
↑これ、+記号を消すと改行が反映されなくなるんですが、この+記号って
どういう意味ですか?ググるためのキーワードだけでもおねがいします。
ググると +{ } は出てきたんですが +( ) はなぜか見つかりませんでした。
>>278
(print(3,2,1)), "\n"; +() は scalar () とほぼ同等。
+{}は、ブロック中の戻り値(?)をスカラーとして評価しますって意味。
+()は、リストとして評価しませんよーって意味。
perldocのperlopの
Terms and List Operators (Leftward)
と
Unary "+"
を参照してください。
>>279-280
なるほど、+{ } と同じような使い方だったんですね、ありがとうございました。
perldocもこれから読んでみます、多謝。 windowsの隠しファイルを判別する方法を教えてください
掲示板のCGIを設置したんだけど、<a href="./bbs/mtbbs.cgi?">って感じにリンクするようにして、http://172では、ちゃんと作動したんだけど、
実際にFTPに転送すると、作動しないどころか画面が写らない
500エラーが出てくる
原因に関してはまだわかんなくて、調べてるんだけど、そもそも思ったのが<a href="./bbs/mtbbs.html">ならまだしも<a href="./bbs/mtbbs.cgi?">なんて、直にリンクすることなんてできるの? >>285
リンクはできる
動かない原因は別にある 知恵袋で質問したら回答どころか閲覧すらなさすぎワロタ・・・
質問してもどうせまともに答えてくれないんだろうな
どこ行っても解決しないわ
こういった10行で一組のデータの中に
---
市民の...
yerles
warrior
---
というパターンが多くあります。
マッチ検索したいのは
---
市民の...
dog
warrior
---
というパターンです。
"市民"という文字を見つけたら
2行下に
"dog"という文字があるならば
その、"市民の..."を出力して欲しいです。
ファイル読んで単純マッチするぐらいしか今はできません
open (my $in , "<" , "./cdatan_5_101.s2");
while (<in>){
if (/yerles/){print "matched\n"}
}
close $in;
} 凄い。ありがとう。
出てきたshiftとか勉強してみます
感謝
どこに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...略
でわかる。
恰好をつけるなら、リングバッファでも書くところですが、回答としては、あんまりだと思ったので。
2行固定なら、別に使わなくても。
perl -ne '($_, $x, $y) = ($x, $y, $_); $y =~ /dog/ && /市民/ && print' File
何も考えなくていいなら、正規表現でバッサリ。
perl -e 'print((local $/ = <>) =~ /(^.*市民.*\n).*\n.*dog/gm)' File
>>300
1ヵ月以上もお前のレスにレスがつかないのはなぜか分かる?
お前みたいなゴミクズは誰も必要としてないからだよ。
一般社会ではあからさまに無視するわけにもいかないから当たり障りのない対応をしてもらってると思うけど、
お前ハッキリ言って迷惑だから。
ゴミクズはネットでもリアルでもできるだけ社会と接点持つな。 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をインストールする手はありますか? make test had returned bad status, won't install without force
まけ出来てるのならいんすこ自体は可能
force installでcygwinの方に入れました
正常に動作します
ありがとうございました
Linuxの方は、手っ取り早く
sudo aptitude install ack-grep
しました
おかげさまで両方にackが揃いました
感謝します
xmlを取得して中身を
s|。|。<br>|g;
して句読点ごとに改行させたかったのですがどうしても出来ません
なにか理由があるのでしょうか
初心者なもんで変な質問をしていたらすいません
エスパーじゃないんだから、そんな質問で答えれる訳ないだろ。
せめてサンプルとなる簡単なxmlを出せよ・・・
申し訳ないです
>>306
デコードはしています
>>307
申し訳ありません
wikipedia.simpleapi.net/api?keyword=Test&output=xml >>308
テストした結果、普通に置き換えできます。
取得方法に問題があるんだろう。
ってか、こんな質問の仕方じゃスレ全部埋まるわ・・・
問題が起きてるサンプルコード出してみ >>308
ちげーよ
utf8のファイルをeucのスクリプトでマッチしようとしたんじゃないの、ってこと >>310
shift-jisのスクリプトでマッチさせようとしました
不味かったでしょうか >>311
なら、どっちかの文字コードにencodeして合わせる > perl -e "print (5+5)/3"
10
なんで?
print -e "print((5+5)/3)"
2000年には既にwarnings実装してんのに
なんで未だに、-w推薦文章なんか残してんだろーね?
-Mwarningsのエイリアスって訳でもねーし。
【誤】print -e "print ((5+5)/3)"
【正】perl -e "(print(5+5)) / 3"
ついでに -w と -Mwarnings は別物。-Mwarnings で -w の代わりになるわけではない。
>>318
-w ≠ warningsは常識だろ。
で、「use Unicodeは、use Jcodeの代りじゃない」ってレベルの事を言ってるぞ、おまえさん。
-wが石頭だから、より制御しうるwarningsを実装したんだろが。 5.20のperllexwarnがスッキリしててワラタ。
再帰中に再帰の深さを出したいんだけどlocal使っていい?
local $::count = $::count + 1;
もっと普通の方法ある?
引数で渡す
sub foo {
my ($arg, $count) = @_;
...;
foo($arg, $count) if $count++ < 10;
}
ありがとーーー。
複製される変数の数には変わりがないよね、たぶん。
上はグローバル変数と言うのが気に入らなくて、下は引数で扱う値が増えるのが気に入らないが。
while(@all){ ((shift @all) eq 'cut') and last; }
whileを修飾子として書くと落ちるんだが誰か理由を教えてくれー
((shift @all) eq 'cut') and last while(@all);
evalでも落ちた
英数混じった文字列の中から2桁の数字にマッチさせたいのですが、
/\d\d/だと3桁以上の数字の前2桁にもマッチしてしまいます。
/^(\d\d)\D|\D(\d\d)\D|\D(\d\d)$|^(\d\d)$/ こんなことするより簡単な方法ないでしょうか?
% 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
/(?<!\d)\d{2}(?!\d)/
これが期待通りの結果が得られました。
(?<!)とか(?!)とかこれまで使ったこと無かったので勉強になりました。
ありがとうございました。
以下のような日付が下から上に並んでいる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
・・・・・・
>>332
\bだと英字と数字の境目は単語の区切りにならないみたい。 centosで元から入ってるperlとは別にソースインストールしたperlを別に入れました。
新しくインストールしたperlで以前から入っていたCPANモジュールを使いたい場合、再度入れなおす必要ありますか?
>>334
perl -Mvars=%h -ane '$a = $F[1] if @F == 3 ; $h{$a} .= $_ }{ print $h{$_} for sort { $a <=> $b } keys %h’ original.txt
>>336
モジュールの共用は避けるべき >>334
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; 単純に逆にするだけか
perl -00pe '$_ = join q{}, reverse ( split /(?=^#)/m)'
my $initial_title_ = "\$" . "$initial_threads" . "_begin";
$initial_title_ = eval $initial_title_;
1行に短くなりませんか?
my $initial_title_ = eval "\$${initial_threads}_begin";
こういうこと?
>>342
ありがとう
eval使うのが3つあったから
6行が3行になったよ $seach_wordに日本語を入れたいのですが、それだとマッチしません。どうすればよいでしょうか?
w3m -dump -cols 160 http://peace.2ch.net/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 .= $_;
} あ、 binmode STDIN , ":utf8": で
binmode STDIN , ":utf8";
binmode STDOUT , ":utf8";
my $seach_word = "日本語" ;
で同様のコマンド叩いて、つまり344が拾えるはずが
何故かヒットしません
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
webサイトの表形式データ(横方向は5列、縦方向は不定で100行ぐらい)を取得するのに、
正規表現の繰り返しマッチング
m//g を使って、結果を配列に入れてるんだけど、
もっと簡単に取ってくるモジュールはないでしょうか?
>>350
>webサイトの表形式データ
の形式が分からんとなんとも。 >>346
ヒント助かった。
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 .= $_;
} (続き)
例えば統計計算用のRでは readHTMLTableというモジュール(パッケージ?)があり、表形式のデータを含んだurlを指定すれば、簡単に取得出来るのですが。
my $tmp = {
$a => sub { $_ = 処理A},
$b => sub { $_ = 処理B},
$c => sub { $_ = 処理C},
};
ループ中に↑のように書いている場合、一つの変数に対して複数の処理($a に 処理A' を追加)を
加えたい場合、どのように書くのでしょうか?
凄い初歩的な質問だと思うのですが真剣に行き詰まってます
教えてください
_HOGE_
こんな表記の変数ってなんて表現するんですか?
またネットでこういう変数について調べたいときは、
どのように検索したらヒットしますでしょうか。
Perl __
で検索しても全然それらしい記事が発見できず
_HOGE_は変数じゃないからヒットしないのが正解
もしかして:ヒアドキュメント
なるほど・・・独自のプログラム記述なんでしょうかね・・・
Perlの変数記述方法じゃないことがわかって少し安心しました
もう一回解析してきます
>>361さんの回答で先入観が排除され、
意味がわかりました。
$mes =~ s/_HOGE_/$name/g;
文字列に埋め込まれた_HOGE_を別の変数に代入されてる文字列と置換させていました。
ありがとうございました。 なんでも受け付けるからって、
__HOGE__ をヒアドキュメントとして使ってる人は、単に
特殊リテラルを理解してない人。
質問に超絶遅レスするなら、
__HOGE__は、ほんとうに HOGE と書かれていたなら、
特殊リテラルのまねっこ。
DATA, END などなら、perldoc.jp で perldata から「特殊なリテラル」の項を
参照すること。
ヒアドキュメントのデリミタを
print <<die;
dieなんてしないよ
die
ってしたら混乱するでしょ。それと同じレベルで特殊リテラルの
記載に類似(もしくはそのまま)させて使ったら、あかんでしょ。
print <<__END__;
dieなんてしないよ
__END__
って主旨?
絶対にありえない単語を区切りにしないと、区切りとしての役目にならんだろが
__END__を区切りにしてしまったら、__END__という単語が使えなくなるだろ
じゃあ __HOGE__ にするわ。絶対ありえん単語だし。
>>368
実行してみろよ、動くぞ。
use strict ;
use warnings ;
while(<DATA>){
print ;
}
print <<__DATA__;
これがヒア
__DATA__
__DATA__
特殊リテラル ID.パス付きのHPの更新通知プログラムをつくり実行したところ (certificate verify failed)とハマりました。
おそらくSSL関係でつまっています。
簡単に教えてくれる方お願いします。
$mech->get('https://*****');
↑指摘されたラインです
SSLかと思うのですが、SSLについて知識があまりないため、
ダメだった理由をわかりやすく教えていただけませんか?
あと、ユーザーIDやパスワードの前にpitgetを書いてあると
どうなるのでしょうか?
説明下手でごめんなさい。 特定のディレクトリ(test)からファイルを読み込む処理を
実装しようと思っています。
while(<./test/*>){
#〜ファイル読み込み処理
}
はOKなのに
$hoge = "./test/*";
while(<$hoge>){
#〜ファイル読み込み処理
}
がうまくいかない理由はなぜなのでしょうか?
$hogeを可変にしたいのですがどうすればよいでしょうか?
突然の質問で申し訳ありませんが、宜しくお願いします。
$hoge = "./test/*";
これは文字だからです。(演算子に対するアドレス(ポインタ)ではありません)。
$hoge = "test";
while(<./$hoge/*>)
>>373
出来ました!ありがとうございます
今日かなり悩んでいました
おかげ様でスッキリしました 下のようにリストのリストを作成したいが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
Lisper な人?
多分、こういうことをお望みかな。
#!/usr/bin/perl
use Data::Dumper;
my @car = (1, 2);
my @cdr = (3, 4);
my @both = ( \@car, \@cdr);
print( Dumper( \@both));
ごめん、アクセス方法も書かなきゃね。
#!/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
ありがとう 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"); 971 名前:名無しさん@七周年[] 投稿日:2006/11/11(土) 00:56:10 ID:M8+ahUZV0
自称スーパープログラマー某
強烈加齢臭
メール見ない メール無視
ドキュメント見ない ドキュメント無視
説明聞かない 説明無視
話聞かない 話無視
ガム→むっちゃー むっちゃー むっちゃー むっちゃー
煎餅→バリバリバリバリバリバリ
菓子パン→モグモグモグモグモグモグモグモグモグモグ
カップアイス→むっちゃー むっちゃー ペロペロペロペロ
フロアすべてに響き渡る 超ばかでかいくしゃみ 当然手でおさえない
異音と異振動
ドスーン!ドスーン! ドカーン!ドカーン! バコーン!バコーン! ズドン!ズドン!
机が近いとマウスポインターが飛ぶ 誤操作誘発
書類だしたりしまうだけでドカンドカン
30秒ごとに口と鼻から異音
ふんっっ! ふんっっ!
備品破壊 貸与P C 破壊 他人のもの破壊
奴の作ったスクリプトとプログラムは使えない バグ製造機
電話や共有携帯電話 キーボードが油ベタベタ
奴に電話とPCとコンソールは触らせてはいけない
HTMLファイルの特定文字列を大文字から小文字へ置き換えたいです。
具体的には、name=
あれ、途切れちゃったのでダブルクォートでおかしくなったので、無しで書きます。
HTMLファイルの特定文字列を大文字から小文字へ置き換えたいです。
具体的には、name=A10AB を name=a10ab とnameの部分のみ置き換えたいです。
s{ name=" ([^"]+) " }{ 'name="' . lc($1) . '"' }egx
>>382
eで関数を使えるんですね。ありがとうございました。 perl コマンドラインからモジュールを読み込みたいんですが、
perl -mM Win32::Clipboard -e ""
だと
Can't open perl script "Win32::Clipboard": Invalid argument
と怒られます。
Perl64\lib\Win32\Clipboard.pm
は存在しているのですが・・・
なんで -m と -M 重ねてるの?それと隙間開けずにやってみ
-MWin32::Clipboard
↑
perl -mM Win32::Clipboard
だと M.pm を読み込んだ後 Win32::Clipboard という名のファイルをperlスクリプトとして実行しようとしてるっぽい
>>385
できました。
ありがとうございました。 どうでもいいけど、質問の回答に「なんで○○なの」と質問で返すのはみっともない
わからないから質問してるのにね
ここは初心者スレだし
よっぽど回答に自信が無いように見える
なんで?
なんで?
なんで?
ことあるごとに、「なんで」っていうヤツ
バカっぽい
イライラする
ムカツク
>>389
「なんで」を追求する楽しさがわからないの? 質問を質問でかえすやついるよな
俺「なぜ変更したんですか?」
先輩「なぜ、その変更に疑問を抱くの?」
・・・
文脈にもよるわな
マニュアルにはっきり書いてあるようなことと違うことやっているなら「お前ちゃんと読んでないのか?」ってなるし
どう説明したら理解できるのか探るためにどう考えてどこに疑問を持ったのか確認することもあるし
そういう文脈を無視して 質問したら質問が返ってきた = おかしい は短絡的だね
>>392
めんどくさい人って思われてるよw
誰もあんなに聞きにこなくね? perlの本を読んでいると、よく
「スカラーコンテキストでは〜」とか「リストコンテキストでは〜」とありますが
どのようなところで、分かるのでしょうか?
$a = grep /d/ ,qw<ab cd def>;
なんかgrepがスカラーコンテキストで使われていると思うんですが
if(grep /d/ ,qw<ab cd def>){}
だとなぜスカラーコンテキストだと分かるのでしょうか?
shiftjisのファイルを読み込むと「{」が「本」にマッチしちゃうんですがいい方法ありませんか?
ファイルを読み込むときにperlに文字コードを教えてあげるとバイト単位ではなくて文字単位で認識してもらえるようになる
open my $fh, '<:encoding(cp932)', $file or die $!;
正規表現を含むソースコード全体をUTF8で書き、スコープの上の方で use utf8; と宣言すればスコープ内のコードも文字単位で認識されるようになる
>>399
レスありがとうございます。
試してみます。
取り急ぎお礼まで。 以下エラーが出たため、ググると、似たエラーの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
すごく古い 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 Perl初心者です。独学でやり始めましたが、わからないことがあり、先輩方、何卒よろしくお願いします。
my $num = 1;
my $inc = $num++;
print “$num¥n”;
print “$inc¥n”;
変数$numは2と表示されますが、変数$incは1と表示さます。こらは仕様でしょうか。変数$incについても2が表示されると思ってたのですが。
C言語では右辺を評価した後に左辺に代入して、2が表示してたかな、と思ったので質問させていただきます。
>>404
Cでも++演算子は同様の結果になると思ったが? >>405
本当ですね。もっと確認してから質問するべきでした。
やりたかったことは
$inc = ++$num(
でした。C言語と同じですね。
ご教授頂きまして、どうもありがとうございました。 >>406
$inc = ++$num;
の間違いです。 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
WVNXN
perlやってみたいど素人です。
Ubuntu 18.04がメインのマシンです
Windows XPサポート終了後難民となり
Ubuntu 16.04に辿りついてます
Ubuntuもまだまだど素人ですけど
通常に動かす所まではできます
Perlはどこから?始めたらいいでしょう
本買った方がいいのかな?
perlやってみたいど素人です。
Ubuntu 18.04がメインのマシンです
Windows XPサポート終了後難民となり
Ubuntu 16.04に辿りついてます
Ubuntuもまだまだど素人ですけど
通常に動かす所まではできます
Perlはどこから?始めたらいいでしょう
本買った方がいいのかな?
perlに初心者がつくとは。。perlの未来は明るい
Perl 6の“Neko operator”を使ってみたいのですがどのように使用すればいいでしょうか。
> 0 ^..^ 9
> say "0 ^..^ 9"
などとやっても
0 ^..^ 9
という文字列(?)が返ってくるだけなのですが……。
Perl6は初心者なので全く分からない。
というかやろうとしたことすらないので知識ゼロw
>>414
すいませんどなたかこれ分かりませんか。 >>417
perl6はまったく使ったことはないが、
範囲演算子らしいから
perl5の ... と同じように使うんじゃないのかね。
say $_ for 0 ^..^ 10;
みたいな? perl6の文法的にこれでいいかはわからんけど。 perl5の範囲演算子 ... じゃなくて .. だったね。失礼。
Xorgってperlで描かれてるコマンドが多い気がするけどなんで?
なんだろう? 計算式で質問投稿しようとするとNGワードエラーで拒否られてしまう orz
全角でもダメかー
>428 の書き込みで、本来続きだった リンク先 >422 の
16進〜解説お願いできませんでしょうか?
の文章内だけでもNG含んでるとか・・・・プログラム技術板・・コミュニケーション終わってね?
>>428
よくわからないんだけど、下2桁を60で割って3桁目より上は1の位にシフトしているわけだよね。
とするとあり得るのは時間の時と分について 時 * 100 + 分 とやった結果が数値として入っていて、
それの時間単位への変換ではないか?
例えば元の値が 315 なら3時間15分という意味で、それを時間単位に直すと 3.25 時間ってこと。 時と分とは限らないか。分と秒かも知れない。まあしかし下2桁は60進法で考えなければいけないということに変わりはない。
>>428
ところで元のプログラムに「16進バイナリデータを・・・」というコメントが入っているのだろうが、呼び出す側は実際には何を渡している?
仮に元がバイナリだったとしても unpack('N', ...) のようなことをしていない? だとするとそこでバイナリから Perl の
変数への変換自体は終わっている。
つまり、コメントが紛らわしい表現になっているだけ。 >430-432 スミマセンです。 orz
もっと詳しく書こうとするとマンゴースレでもブロックされました。
ぶっちゃけ、この中の
http://motor.geocities.jp/resermail/dc10tools.zip
「dc10mov2csv.pl」内です。
gps_data{'latitude'}の部分からです
gps_data{'bearing'}の式は
変換が単精度浮動小数点数(float)のIEEE754 単精度float変換で合ってますか?
これをベースに別メーカー機種の同様な構造を持つデータでの他言語の変換プログラムを考えているので。 >>433
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進法で小数点以下の値にしてるってことね。 >>434
ありがとうございます。
全体からずらして抜いたもの60進法にしてるだけなんですね。
てっきりバイナリから浮動小数点を出す特殊計算かと思っていました。
適当にがんばります。 「サンプル」の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
まずは自分で書いてみたコードを晒すところからだな。
一行プログラムが思い浮かんだ。
最初の列をハッシュのキーにして3列目をpush。
全部読んだらキーをソートして読んだ内容に番号降りつつ出力。
しかし俺は今電車の中からスマホで書いてるのでここに書く気が起きない。
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
考え方は >>439 と同じ
perl -pe "s/^([^,]+,)[^,]+/$1.++$count{$1}/e" < sample.csv 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);
}
ウチでやるならこうかしら
おはよう。
元のテキストが 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
あ、そうか。貯め込む必要はなくてハッシュ作ってそのまんま出せば良いんだよな。
じゃあawkの方が楽ではないか?
awk -F, 'BEGIN{OFS=","}{n[$1]++;print $1,n[$1],$3}' s.txt
436です。皆様ありがとうございました。
自分では1行ずつ処理することまでしかできず、複数レコードの
1コラム目の比較をすることができませんでした。
おかげさまで体育の日に子供の運動会に行けます!
ありがとうございました!
上の方のレスにも関連したものがありますが、
ファイルから読み込んだ文字列データにて
パターンマッチがヒットしません。
同一文字列を直接コード内に定義すると、ヒットします。
出来ればファイルに切り出したいので、
ご教示いただけますでしょうか。
[環境]
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
たぶんそれだな。$line の中身が "テスト\r\n" または "テスト\n" になってそう。
遅くなりすみません。
テストファイルには改行を入れていなかったのですが、
chompが必要なのですね。
ファイルからレコードを取得するにはchompが必要と勉強になりました。
ありがとうございました。
>>450
いや、改行は入っていると思うぞ。でなければあのプログラムでは一致する。 ところでUTF-8にBOMってなんか意味あるの?
ビッグエンディアンで上のビットから詰め込んで並べている1パターンしかないよね?
>>453
あるよ、BOMがあればUTF-8だと文字コードを
簡単に判定できる
つまり、文字化け防止に役立つ
みんなBOM付けるようにすれば良かったんだけどな >>450
ですが、改行が入っていました。
遅くなりすみません。
すみませんでした。確認をしっかりします。
もう一つ質問があるのですが、>>450の環境にて、パターンマッチングを、全角、半角、ひらがな、カタカナ、大文字、小文字を区別することなく行いたいのですが、方法をご教示いただけますでしょうか。 >>456
手順としてはまず比較に都合のいいように比較する側とされる側の文字列を正規化する。
例えば半角は全て全角にし、濁点や半濁点はそれを含んだ文字にし、英小文字は大文字にする。
それから比較を行う。
ただし使われている文字がASCIIの文字だけならば // のオプションで i が使えるので正規化不要。 教えて下さい。
my @str4=['a','b','c','d','e'];
my $ref4=\@str4;
print $str4[0][1],"\n"; # b
print @{ $str4[0] },"\n"; # abcde
ref4を使って同様に b と abcde を表示するには、どうしたらいいですか?
うっかり自己解決しました。数時間悩んだのに。
print @{ ${ $ref4 }[0] };
print @{ ${ $ref4 }[0] }[1];
>>457
オプションで可能であればと思ったのですが、マッチング文字列と対象を同じ文字種にしないといけないんですね。
ActivePerlでUnicode::Japanese
でUTF8から変換して書いてみたのですが、cp932にencodeすると、化けてしまい、使用できませんでした。
ActivePerlで使用可能なモジュールあればコードではなくてかまいませんので、何かあれば紹介してもらえますでしょうか。 >>453-455
Linux では、BOM なしUTF-8 を使う、アプリ開発者が多く、
BOMありにするとバグるアプリがあるから、BOMなしを使っているけど、
そうすると、Windows では、sjis と区別がつかなくなり、
Explorer での文字列検索ができなくなる
だから、Windows10 で、WSL, Ubuntu を導入して、grep を使っている 結合文字列をUnicode正規化で合成する方法の危険性
https://qiita.com/monokano/items/d4c37d9bc9833eaeda6e
濁点・半濁点を別の1文字として扱う、結合文字列はMac だけだから、Mac を使わないなら関係ない
Unicode正規化は、日中韓で、別の漢字に変換されるものがあるから使えない
Ruby では、sjis・UTF-8 の変換は、ファイル読み書き時に指定できる。
CRLF・LF の改行コードの違いは、意識したことがない。
chomp とか、どちらの改行コードでも、正常に動く >>464
有料ですがnkfのActivePerl用をnamazuというところから購入しましたが、
nkfで変換後、utf8でマッチングが不可能で調査中です。 ハッシュを要素に持つハッシュへのアクセスについて
ご教示いただけますでしょうか。
下記のコードで、読込は正常に完了しますが、出力が不可能です。
$$を使用したり、試しましたがギブアップです。
#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");
wrote_numが何か分からんけど
my %rec; はwhile内にしたらどうですか
あと、$rowはハッシュのリファレンスだろうから$row->{'id'}では
>>467
すみません、レス用に書き換えた元が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
読込完了
出力完了 これでいけると思いましたが、玉砕でしたw
foreach my $row (@$table){
while (my ($id, $count, $name) = each(%row)){
print encode('cp932', "$id\t$count\t$name\n");
}
これでいけました!
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
出力完了
これで全てのハッシュ要素を出力できますが、
カラム順が不確定になってしまいますね。
ハッシュなので仕方ないことですかね。
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
出力完了
>>471
キーだけ別の配列に取っといてそれ使えば? >>472
できれば要素をカラム名でアクセスしたいのでハッシュの方がいいのですが、カラム順固定出力は配列しかないということですね。 >>471
foreach $col (sort keys %{$table{$row}}) {
を
foreach $col (qw/id count name/) {
とかでは? keyの名前も順番も分かってるんだし。 自分が昔質問したことにたいして今なら回答できる
<> は <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;
タグを除去したいのですが、<>も文に入っているため
<.*?>ではなく<("[^"]*"|'[^']*'|[^'">])*>を使いたいのですが
perl -pe '<("[^"]*"|'[^']*'|[^'">])*>'
にする場合どれどれをエスケープすればよいでしょうか?
’だけだと動きませんでした。
perl -pe '<("[^"]*"|\'[^\']*\'|[^'">])*>'
除去?だったらs/パターン//gみたいにやらないと何も変わらないのでは?
てか、それエラーにならないの?
5chの書き込みのほう、つけ忘れてました
perl -pe 's/<("[^"]*"|'[^']*'|[^'">])*>//g'
です
perl -pe 's/<.*?>//g'は動くんですけど
perl -pe '<("[^"]*"|\'[^\']*\'|[^'">])*>'だと動かないんですよね
またやっちゃった
perl -pe 's/<("[^"]*"|\'[^\']*\'|[^'">])*>//g'
こうか?
perl -pe 's/<("[^"]*"|'"'"'[^'"'"']*'"'"'|[^'"'"'">])*>//g'
perlというよりシェルのシングルクォートの問題
そこまでするくらいなら HTML::Parser を使う方がいいと思うよ。
>481
できました!、ありがとうございます。
'を'""'で括るのですね
なんで\でエスケープにならないんでしょうね
パーサーも一度使ってみたんですが
<p>hoge</p><p>hoge</p>
pタグが一行に2つあると誤作動したりするんですよね
その誤作動がパーサーのせいかどうかは判らないが、少なくとも
HTML::Parser でそんなことは起こらないから安心してほしい。
たとえばテキスト部分だけを出力したいならこんな感じでできる。
my $parser = HTML::Parser->new(
text_h => [sub { print( $_[0]) },'text'],
);
$parser->parse_file( \*STDIN);
>485
参考になります。
パーサーもいろいろ種類あるみたいですね。
自分の使ってたのはhtml-xml-utilsというやつでした。