Perlについての質問箱 51箱目at TECH
Perlについての質問箱 51箱目 - 暇つぶし2ch2:デフォルトの名無しさん
12/03/02 14:34:28.20
[プログラミング自体の経験が無い奴はまずココを読め]
Perl プログラミング講座: URLリンク(www.site-cooler.com)

[本]
リャマ: URLリンク(www.oreilly.co.jp)
駱駝: URLリンク(www.oreilly.co.jp)
Effective Perl: URLリンク(www.amazon.co.jp)
クックブック: URLリンク(www.oreilly.co.jp)
Perl ベストプラクティス: URLリンク(www.oreilly.co.jp)
Perl Hacks: URLリンク(www.oreilly.co.jp)

[オンラインマニュアル]
最新のドキュメント: URLリンク(search.cpan.org)
perldoc.jp: URLリンク(perldoc.jp)
perldoc.perl.org: URLリンク(perldoc.perl.org)

3:デフォルトの名無しさん
12/03/02 14:35:56.85
[モジュール]
CPAN.com: URLリンク(search.cpan.org)
河馬屋二千年堂: URLリンク(homepage3.nifty.com)

[テクニック]
Perl メモ: URLリンク(www.din.or.jp)
Perl のページ: URLリンク(homepage1.nifty.com)
Perl の小技: URLリンク(homepage3.nifty.com)

[Perl 5.8 Unicodeメモ]
URLリンク(www.rwds.net) (修正)
URLリンク(www.namazu.org)
URLリンク(www.lr.pi.titech.ac.jp)

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

5:デフォルトの名無しさん
12/03/02 14:37:29.65
Encodeモジュール (現在のPerl文字コードの標準)
URLリンク(search.cpan.org)

UNICODEでわからなくなったらここを読め
URLリンク(perldoc.jp)
URLリンク(perldoc.jp)

6:前スレ981
12/03/02 17:33:26.84
前スレで右寄せリスト代入をするための方法を募集したものです。

# やりたいこと
my ($sensen, $sensyu, $konsyu);
($sensen, $sensyu, $konsyu) = @ARGV if (@ARGV == 3);
($sensyu, $konsyu) = @ARGV if (@ARGV == 2);

unshift @ARGV, undef if (@ARGV == 2);
my ($sensen, $sensyu, $konsyu) = @ARGV; # 自分

my ($konsyu, $sensyu, $sensen) = reverse @ARGV; # 984さん
my ($sensen, $sensyu, $konsyu) = @ARGV[-3, -2, -1]; # 985さん

リバースの方法はカッコイイですね!思いつきませんでした。
変数の宣言順とコマンドライン引数の順が変わるのが少し気になりましたが。
添字にマイナスを指定するというのも直接的に右寄せする感じが面白いですね。
皆さんレス有難うございました。

7:デフォルトの名無しさん
12/03/02 18:05:12.40
my$i=0,$_=$ARGV[--$i]for reverse my($sensen, $sensyu, $konsyu);

8:デフォルトの名無しさん
12/03/02 18:11:37.69
もっと読みにくくしろや

9:デフォルトの名無しさん
12/03/02 18:30:58.70
> 変数の宣言順とコマンドライン引数の順が変わるのが少し気になりましたが

そもそもの仕様が、必須項目は左に、省略可能なものは右にっていうコマンドライン引数の大原則を外れてることのほうを気にしろよ

10:デフォルトの名無しさん
12/03/02 19:05:00.51
いやまあどっちの原則を重視するのかはちょっと気になってた
Perl寄りなら必須項目を左に寄せる原則重視だけど
右寄せ重視で書きたい場合もあるのかなと
(たいてい左小右大で書かれる数直線的な感じで書きたいとか)

11:10
12/03/02 19:06:30.47
あっと他の誰かと勘違いされかねない書き方してるな俺
この話題で書き込むのは>>10が初めて

12:デフォルトの名無しさん
12/03/02 19:31:41.58
コマンドラインって基本英語の命令の文法だから
それを理解してるかどうかよくわかるw

13:デフォルトの名無しさん
12/03/02 20:15:05.01
マジかよ、20年以上オプションが前で、ファイルが後ぐらいの感覚しかなかったぜ。

14:デフォルトの名無しさん
12/03/02 20:57:46.17
コンパイラ言語で自作するのがいいね

15:デフォルトの名無しさん
12/03/03 20:00:45.51
perlでCSVを取り扱う時の一番楽そうなライブラリは何ですか

"でそれぞれの要素が括られていて、中にコンマが入っていてもok、みたいなパターンの
取り扱いに3秒で挫折したので、いい感じにsplitしてくれるだけでいいんだけど

16:デフォルトの名無しさん
12/03/03 20:08:11.25
>>15
まず聞く前に検索したら?マジで。

17:デフォルトの名無しさん
12/03/03 20:09:17.73
>>15
Text::CSV
Text::CSV_XS
のどっちかだね

18:デフォルトの名無しさん
12/03/03 20:22:50.81
まあ、その二つしか見つからなかったんだけど、
splitと置き換えるには結構面倒で

installしないといけない、->newして->parseして->fieldsしないといけない、
unicodeで渡さないといけない、とかいろいろ

きっちりしといた方が後々楽なんだろうけど、
splitと書いた所を、split_csvと書き換えるだけで全部面倒みてくれるような
sub split_csv があったら、そっちの方が好きなんだよな

19:デフォルトの名無しさん
12/03/03 20:28:39.52
>>18
さすがにそれは自分で書きなよ
モジュールで提供してくれるのが一番だけど

20:デフォルトの名無しさん
12/03/03 20:33:22.07
何ていうのかな
楽をしようと思ってライブラリを頼ったのに、楽できない的な
CSVくらいなら簡単だからいいんだけど、なんか大規模な作品にぶつかったりして
まず勉強から入らないといけない

結果的に出来上がるコードはシンプルなんだけど、
単に大部分のオプションがデフォルトでいいと判ったからシンプルになってるだけで、
背景に膨大な知識が要る、みたいな

21:デフォルトの名無しさん
12/03/03 20:33:56.66
> installしないといけない
もうPythonでも使ってろよと

22:デフォルトの名無しさん
12/03/03 20:35:49.77
>>20
ツイッターでやれ

23:デフォルトの名無しさん
12/03/03 21:06:03.91
>>2
Effective Perlはperl4の時代の本だよね
これのperl5バージョンみたいなの無いの

24:デフォルトの名無しさん
12/03/03 21:55:22.04
>>23
Perl5の時代の本です。

25:デフォルトの名無しさん
12/03/03 23:46:52.88
あ、ほんとだ
普通に4の本だと思って読んでた

26:デフォルトの名無しさん
12/03/04 00:06:47.26
>>20
そんな君には詳説正規表現がおぬぬめ。
楽をしたいなら購入するがいい。

27:デフォルトの名無しさん
12/03/04 03:50:08.60
>>20


何このゴミ
何で2chをブログ代わりに使ってるの?

28:デフォルトの名無しさん
12/03/04 10:49:56.72
>>27


何このゴミ
何で2chをブログ代わりに使ってるの?

29:デフォルトの名無しさん
12/03/04 11:43:27.43
今日は何故か下痢が酷かった
昨日食べたかっぱ寿司か、ワインか、つまみの鶏肉のどれかが怪しい

鶏肉は同じもの昨日も食ったから急に悪くなるとは考えにくいし、
ワインはそんな腐るようなものでもないから、やはり寿司か

30:デフォルトの名無しさん
12/03/04 13:05:33.36
>>28


オウム返ししたいだけで
わざわざレス消費するこういうゴミって必ずいるよね

31:デフォルトの名無しさん
12/03/04 14:11:30.69
膨大な桁数の計算をする時にはどういう感じでやればいいですか?
3.987......e+47みたいになるので、
それの回避方法です。
いいアルゴリズムないですか?



32:デフォルトの名無しさん
12/03/04 14:17:57.69
>>31
URLリンク(www.google.co.jp)

33:31
12/03/04 14:50:58.20
>>32
アルゴリズムの書いてあるページ貼れやゴミ

34:デフォルトの名無しさん
12/03/04 14:51:33.30
>>32
超サンキュウです。


35:デフォルトの名無しさん
12/03/04 15:03:10.21
>>33
自分で探せよハゲ
URLリンク(bossdonreader.naganoblog.jp)

36:デフォルトの名無しさん
12/03/04 16:26:08.36
>>30


オウム返ししたいだけで
わざわざレス消費するこういうゴミって必ずいるよね


37:デフォルトの名無しさん
12/03/04 16:52:08.90
本当にオウム返しきたw
頭悪そうw
まさにゴミwww

38:デフォルトの名無しさん
12/03/04 20:02:40.09
馬鹿には無理

39:デフォルトの名無しさん
12/03/06 01:52:18.29
クソスレ

40:デフォルトの名無しさん
12/03/06 01:52:35.45
馬鹿には馬鹿

41:デフォルトの名無しさん
12/03/06 05:14:48.30
うるさいゴミ

42:デフォルトの名無しさん
12/03/06 16:05:48.69
バーカ

43:デフォルトの名無しさん
12/03/06 16:06:42.71
>>33
しね

44:デフォルトの名無しさん
12/03/06 18:11:49.23
生きる!

45:デフォルトの名無しさん
12/03/06 18:57:42.01

ゴミ

46:デフォルトの名無しさん
12/03/06 20:22:36.52
またどうしようもないカスが貼りついてんのか

47:デフォルトの名無しさん
12/03/06 22:14:15.40
>>46=どうしようもないカス

48:デフォルトの名無しさん
12/03/06 22:28:48.33
失せろよ池沼

49:デフォルトの名無しさん
12/03/07 02:46:48.98
>>46
よう、カス

50:デフォルトの名無しさん
12/03/07 03:05:21.22
頭の悪いヴァカが住み着いてるな

51:デフォルトの名無しさん
12/03/07 12:06:33.78
ケツ毛の処理方法を教えてください

52:デフォルトの名無しさん
12/03/07 14:12:39.71
うるさいゴミ

53:デフォルトの名無しさん
12/03/07 17:35:17.78
chompはマルチコアに対応していますか?

54:デフォルトの名無しさん
12/03/07 20:19:56.54
モンゴリアンchomp

55:デフォルトの名無しさん
12/03/07 20:23:18.35
カトchomp

にしてもラクダ新版が出たというのにこの荒れっぷりは

56:デフォルトの名無しさん
12/03/07 20:42:58.11
「P」と「H」の両方を含む言語は大抵ゴミ

例)
PHP
HSP
Python

57:デフォルトの名無しさん
12/03/07 21:08:45.67
>>56
Pythonいいんじゃないの?
HSPは、どうかしらんけど。
PHPはキャラかぶってる。

58:デフォルトの名無しさん
12/03/08 00:12:04.62
Net::Nslookupでダウンしたサーバーに
nslookupすると固まるのですが
どうやってタイムアウトさせるのでしょうか?
サーバーがダウンしてるか確認したいのですが

59:デフォルトの名無しさん
12/03/08 00:27:02.86
systemでping

60:デフォルトの名無しさん
12/03/08 00:30:23.36
1人雇った

61:デフォルトの名無しさん
12/03/08 00:58:36.40
ソース読むと$TIMEOUTって変数があるから、適当に設定しとけばいいんじゃないの。
Windows以外なら動作するように見える。

62:デフォルトの名無しさん
12/03/08 00:59:25.73
何入れても1分も待たされる
ソースに書いてもダメみたい

63:デフォルトの名無しさん
12/03/08 01:04:39.63
マジで馬鹿しかいない

64:61
12/03/08 01:40:39.28
>>62
デフォルトで15秒だから、他に何か問題があるんじゃないの?
試してみたらちゃんと動作したし。

65:デフォルトの名無しさん
12/03/08 01:51:11.95
つまりWindowsでは、この方法は無理なのか

66:デフォルトの名無しさん
12/03/08 07:10:05.69
バッチファイルとリダイレクトさいこう
巣に帰りました

67:デフォルトの名無しさん
12/03/08 15:19:59.97
クズだな

68:デフォルトの名無しさん
12/03/08 15:42:45.77
Programming Perlの新しいのが出るらしいけどお前たちは買いますか?
URLリンク(www.amazon.co.jp)

69:デフォルトの名無しさん
12/03/08 15:45:28.75
日本版じゃねーじゃん

70:デフォルトの名無しさん
12/03/08 16:03:34.06
sub read_file1 { local $/ = ""; <$_[0]>}
sub read_file2 { local $/ = ""; my $fh = $_[0]; <$fh>}

print read_file1("test.txt"); # ->GLOB(0x10063af0)と出力される
print read_file2("test.txt"); # ->ファイル全体が正常に出力される

なぜ1の方法ではうまくいかないのでしょうか?


71:デフォルトの名無しさん
12/03/08 16:06:27.75
すみませんコード部下二行、間違えていました。訂正です。
open my $fh, "<", "test.txt";
print read_file1($fh);
print read_file2($fh);


72:デフォルトの名無しさん
12/03/08 16:34:13.01
>>71
perlopに書いてある

山括弧の中の文字列がファイルハンドルでもファイルハンドル名、型グロブ、 型グロブリファレンスの
いずれかが入った単純スカラ変数でもなければ、 グロブを行なうファイル名のパターンと解釈され、
コンテキストによって ファイル名のリストか、そのリストの次のファイル名が返されます。 この区別は
単に構文的に行われます。 <$x> は常に間接ハンドルから readline() しますが、 <$hash{key}> は常に
glob() します。 $x は単純スカラー変数ですが、$hash{key} は違う(ハッシュ要素)からです。
<$x > (余分な空白に注意) ですら readline($x) ではなく glob("$x ") として扱われます。

73:71
12/03/08 17:03:05.36
>>72
レスありがとうございます。
あぁ、ラクダ本で何かそういった記述を呼んだ記憶があります。たしかこんな文面の、
行入力演算子<>の中に変数以外のものを置くと突然変異して別の演算子になる。:グロブ演算子

配列の要素も置けなかったとは読み解けませんでした。
$_[0]はグロブすべきファイル名パターンとして解釈されたのですね。
少し紛らわしいと思います。
代替法としては・・
<$foo>をブログとして解釈させるために<${foo}>とすることができるようですが
その逆、<$_[0]>をブログではなく行入力として解釈させることは出来ないようです。
>>71のように一度別の容器に入れるしかないのでしょうか。

74:デフォルトの名無しさん
12/03/08 17:07:44.21
ブログ?


75:デフォルトの名無しさん
12/03/08 17:16:17.47
>>73
readline使えばいいと思うよ

76:71
12/03/08 17:23:37.36
>>74 ブログでした・・・

>>75
なるほど!ばかですね私ってw
うまく動きました。ありがとうございます。

~/work $ perl test.pl

sub read_file1 { local $/ = ""; readline($_[0])}
sub read_file2 { local $/ = ""; my $fh = $_[0]; <$fh>}

open my $fh, "<", "$0";
print read_file1($fh);
#print read_file2($fh);
__END__


77:デフォルトの名無しさん
12/03/08 17:56:17.05
ファイルロックについていろいろ試したけど

ロックをしないで
ファイルを読み込み中に書き込みするとデータが壊れる
書き込み中に読み込みしても壊れるが
読み込み中に読み込みしても壊れないということがわかった
これらを考慮してファイル読み込み中は書き込みのみロック
ファイル書き込み中は読み込みと書き込みの両方ロックするのが一番いいのである。

78:デフォルトの名無しさん
12/03/08 17:59:29.00
何十年前の話題だよ


79:デフォルトの名無しさん
12/03/08 18:03:56.39
fcntlの範囲ロックは未来の技術

80:デフォルトの名無しさん
12/03/08 18:25:40.22
PCDOSの話か

81:デフォルトの名無しさん
12/03/08 19:02:20.23
$cond = "t";
$cond ?
$hoge = "aiueo":
nop;

↑これはいけるけど
↓これはいけないんだね

$cond = "";
$cond ?
nop:
$hoge = "aiueo";

82:デフォルトの名無しさん
12/03/08 19:41:49.01
flock

83:デフォルトの名無しさん
12/03/08 19:54:16.81
>>81
URLリンク(perldoc.jp)
> 右結合 ?:
> 右結合 = += -= *= などの代入演算子

$cond = "";
($cond ? nop : $hoge) = "aiueo";

nopが変数じゃないからエラー。

84:デフォルトの名無しさん
12/03/08 23:09:14.97
nopが変数じゃないからエラーじゃないから。

85:デフォルトの名無しさん
12/03/08 23:25:47.31
nopが変数じゃないからエラーじゃないからじゃないから。

↓ノーエラー
$aho = 84;
$cond = "";
$cond ?
$aho:
$hoge = "aiueo";

86:デフォルトの名無しさん
12/03/08 23:33:10.23
有効な左辺値を返すのか。知らなかった。

87:デフォルトの名無しさん
12/03/08 23:39:18.06
undef や lvalue sub のように左辺値として有効な何かであれば変数である必要はない。

88:デフォルトの名無しさん
12/03/08 23:59:15.46
>>87
さすがにundefはエラーを吐く。
代入可能(左辺値として妥当)な何かであればいいけど。

89:デフォルトの名無しさん
12/03/09 01:06:58.84
undef はダメだけど () や (undef) なら妥当だね。
1 ? undef : $dummy = 'aiueo'; は通らないけど、
(1 ? undef : $dummy) = 'aiueo'; は (undef) = 'aiueo' になるので通る。

my @a = "a".."z";
1 ? $foo : $bar = @a; say $foo; #=> 26
(1 ? $foo : $bar) = @a; say $foo; #=> a

90:デフォルトの名無しさん
12/03/09 01:11:02.22
1 ? undef : $dummy = 'aiueo'; は通らないけど、
(1 ? undef : $dummy) = 'aiueo'; は (undef) = 'aiueo' になるので通る。
これで意味が変わるのか? やっぱ、クソだわ。

91:デフォルトの名無しさん
12/03/09 01:20:08.26
flockが使えない環境用にmkdirで書き込みのみロックと読み込みのみロックと両方ロックのを作った
作るのにまる3日もかかった

92:デフォルトの名無しさん
12/03/09 01:32:13.34
>>89
それは条件部が定数だからコンパイル時に (undef) = 'aiueo': へ最適化されて
リストへの代入になるからたまたま通るだけで、
($ARGV[0] ? undef : $dummy) = 'aiueo'; のように変動する条件なら
$ARGV[0] ? undef : $dummy = 'aiueo'; と解釈され、
$ARGV[0] が真の時に undef = 'aiueo' をやろうとして実行時エラーになる。

93:デフォルトの名無しさん
12/03/09 04:55:27.45
じゃあ
(($ARGV[0] ? undef : $dummy)) = 'aiueo';
なら通ったりするのかな?外側のカッコも最適化されてなかったものにされるのかな?
それって処理系依存な動作だったりしないのかな?


94:デフォルトの名無しさん
12/03/09 06:00:11.78
>>93
> perl -v
This is perl 5, version 14, subversion 2 (v5.14.2) built for MSWin32-x86-multi-thread
(with 1 registered patch, see perl -V for more detail)
...
> perl -MO=Deparse -e "(($ARGV[0] ? undef : $dummy)) = 'aiueo'"
$ARGV[0] ? undef : $dummy = 'aiueo';
-e syntax OK
> perl -MO=Deparse -e "1 ? undef : $dummy = 'aiueo'"
undef = 'aiueo';
-e syntax OK
> perl -MO=Deparse -e "(1 ? undef : $dummy) = 'aiueo'"
(undef) = 'aiueo';
-e syntax OK

95:デフォルトの名無しさん
12/03/10 01:25:39.95
>>91
まさか今週の話じゃないよな?

96:デフォルトの名無しさん
12/03/10 01:47:59.87
>>68
今日届いた。らくだ本は青くなってからだじゃれが減ってつまんないよ。
版が上がってますますそう感じる。それともおいらのセンスがないのかな。

97:デフォルトの名無しさん
12/03/10 12:50:05.11
日本語の第四版持ってるけどどんな所が改訂されたんだろう

98:デフォルトの名無しさん
12/03/10 12:51:35.46
>>97
ラクダの右足踏み込みが2ドット深くなってます。

99:デフォルトの名無しさん
12/03/10 13:22:01.47
翻訳されたのが出るのは何年後?

100:デフォルトの名無しさん
12/03/10 15:35:25.50
2年後でしょうね。
その頃はPerl5.18なので、脚注で補われるかと。

101:デフォルトの名無しさん
12/03/10 18:10:37.59
このようにmkdirでロックを作っているのですが
if(mkdir("write.lock",0755)){

}
#(ここの隙間)
if(mkdir("read.lock",0755)){

}

このように読み込みのロックと書き込みのロックの隙間に別のプロセスが入り込んで
read.lockを作ってしまわないようにするにはどうしたらいいんですか?

102:デフォルトの名無しさん
12/03/10 18:13:12.98
>>101
ちょっと意味が分からないけど、
if (mkdir("read.lock", 0755) && mkdir("write.lock", 0755))
って事?
どういう事情で読み込み用と書き込み用で2つもロック用ディレクトリ作ってるの?

103:デフォルトの名無しさん
12/03/10 18:46:08.41
>>102
まあそういうことだけど
2つロック作る理由は

書き込みページ(kakikomi.cgi)
1:ファイルロック
2:ファイル読み込み
3:データ加工
4:書き込み処理
5:ファイルロック解除

読み込んで表示するページ(hyouzi.cgi)
1:ファイルロック
2:読み込み
3:表示
4:ファイルロック解除

1つロックだとkakikomi.cgiの処理が終わるまでhyouzi.cgiがsleep待ちというのはいいのですが
問題はhyouzi.cgiの処理が終わらないと他のhyouzi.cgiがsleep待ちになってしまって観覧数が増えると重くなると言うことです
すなわちhyouzi.cgiは書き込み禁止ロックだけかけて読み込みはできるというようにしたいのです。

104:デフォルトの名無しさん
12/03/10 18:58:20.53
DB使えばいいじゃん。
ってこれ言ったらおしまい?

105:デフォルトの名無しさん
12/03/10 19:01:20.97
>>103
たとえば、kakikomi.cgiやhyouzi.cgiが書き換えたり参照したりするファイルがdata.logだった場合、
kakikomi.cgiで、
ロックして書き出しの時にtmpファイルへ書き出し、
書きだしたtmpフィアルをdata.logへリネーム
ロック解除。

hyouzi.cgiは、ただ読み込むだけならロック無しで読み込み。

これならどう

106:デフォルトの名無しさん
12/03/10 19:10:04.23
hyouzi.cgiの読み込み中にrenameでdata.logの中身が変わると
読み込みが中断されたりしないのかな?

107:デフォルトの名無しさん
12/03/10 19:58:17.03
renameがアトミックかどうかはOS依存。
ぶっちゃけ※Windowsを除く。

つか板違い。

108:デフォルトの名無しさん
12/03/10 20:15:05.94
答えられなくなってきたので板違いと言って追い出すことにしました

109:デフォルトの名無しさん
12/03/10 20:18:36.62
>>1とはなんだったのか

110:デフォルトの名無しさん
12/03/10 21:24:22.36
>>1=アトミック

111:デフォルトの名無しさん
12/03/11 05:44:09.90
1 Apple
2 Orange
3 Banana
  :

のような 番号-文字列 で構成されたデータがあり、各データは1:1かつユニークであることが保証されます。
(1つの番号に複数の文字列が指定されていたり、逆に複数の番号でAppleが割り振られていたりはしません)

番号←→文字列の相互参照をさせるとき、どのようなデータ構造にするのがスマートでしょうか?


とりあえずユニークであることの保証はデータベースに丸投げして、
Perl側で必要な部分だけ取得し、2つのハッシュ(片方は配列でもいいかも)に突っ込むという形を考えています。


112:デフォルトの名無しさん
12/03/11 08:01:20.38
>>111
URLリンク(perldoc.jp)

#!/usr/bin/perl -w
use strict;

my @data = split /\n/, <<'EOD';
1 Apple
3 Orange
5 Banana
EOD

# 番号が密で番号から文字列を引く処理が主なら配列
my @n2s; /([0-9]+) (.+)/ and $n2s[$1] = $2 for @data;
print $n2s[3], "\n"; # Orange

# 文字列から番号を引く処理が主ならハッシュ
my %s2n; /([0-9]+) (.+)/ and $s2n{$2} = $1 for @data;
print $s2n{'Orange'}, "\n"; # 3

# 番号が疎だったり両方の処理が必要ならハッシュ
my %n2s = reverse %s2n;
print $n2s{'1'}, "\n"; # Apple

# 計算量を気にしないなら毎回検索
use List::Util qw(first);
print first { defined $n2s[$_] && $n2s[$_] eq 'Banana' } 0..$#n2s; # 5

__END__
あとはこの手の処理をブラックボックスの中でやってくれるモジュールを探すなり、
それこそデータベースを使えって事になると思うよ。

113:デフォルトの名無しさん
12/03/11 09:51:41.13
>>112
サンクス!
実際に運用してみないと分からないけど、文字列→数字への参照の方がクリティカルになりそうなので、
2番目か3番目でやってみる!

試作段階では参照もDBに任せてたんだけど、ちょっと負荷が大きかった(´・ω・`)
まあ、まだ最適化やら何やらする前ってのもあるだろうけどね。

114:デフォルトの名無しさん
12/03/11 14:11:39.48
綺麗なコードだ・・・>>112
どうすればこんなコード書けるようになるんだろう

115:デフォルトの名無しさん
12/03/11 18:19:22.10
>>114
perldocちゃんと読んでる?

116:デフォルトの名無しさん
12/03/11 22:06:00.97
ほとんど読んだことない。どんな時に読むものなのか分からない。

117:デフォルトの名無しさん
12/03/11 22:32:57.14
ていうかどこから読んでいいのかわからない

118:デフォルトの名無しさん
12/03/12 01:09:47.82
CGIならKENT本もいいよ

119:デフォルトの名無しさん
12/03/12 01:10:49.42
どこらへんを綺麗と思ったのか知らんけど、読んどいて損は無いよ。

strictプラグマは使うべき?
URLリンク(perldoc.jp)

後置のfor、修飾子
URLリンク(perldoc.jp)

$_, $1, $2とかの定義済み変数や__END__のリテラル
URLリンク(perldoc.jp)

変数展開しないヒアドキュメント(かなり下の方だけど)
URLリンク(perldoc.jp)

ハッシュのキーと値をひっくり返すreverseのイディオム
URLリンク(perldoc.jp)

120:デフォルトの名無しさん
12/03/12 01:23:22.93
わざわざありがとう。個々の要素要素については分かるんだが、
全体通した時に上手に組み合わせて書くな、書き慣れてそうだなと思った。
もっと読みたい。

121:デフォルトの名無しさん
12/03/13 15:37:11.44
opendir my $DH, $dir or die "$dir : $!";
すると「リストを返してるのに括弧が無い」というような warning が出る。
Parentheses missing around "my" list at ...

opendir my ($DH) なら怒られないけど
何故 opendir の dirhandle はリストになってるの?
もしくは、リストになっていると何が出来るようになるの?

122:デフォルトの名無しさん
12/03/13 16:40:31.96
警告が出ないから分からん。

123:デフォルトの名無しさん
12/03/14 00:45:35.55
>>121
その警告は
my $foo, $bar
のように書いたときに出る。この場合、
my($foo), $bar
と見なされるから意図している動作と違うのでは? と。
典型的な例としては、my $foo, $bar = @hoge とか。

最近のバージョンだとこの動作を意図して書いているところでは
警告が出なくなっているんだと思う。多分。


124:デフォルトの名無しさん
12/03/14 06:01:58.25
「拒載韓国人(韓国人の乗車拒否)」こんな文字が台湾のタクシーに貼られていることが分かった。
韓国のインターネット上で、大きな話題を呼んでいる。

12日、韓国のコミュニティーサイトに「台湾のよくあるタクシー」「台湾の反韓感情」などのタイトルで、
台湾のタクシーの写真が投稿された。写真には女性がタクシーに乗車しようとしている場面が映っており、
開いたタクシーの窓には「拒載韓国人、NO KOREAN PASSENGER」という韓国人の乗車を拒否する文字が書かれていた。

この写真がネット上で広まると、多くの韓国人ネットユーザーが台湾タクシーの対応に反発。
「台湾はそんなに韓国人が嫌いなのか?」「私も台湾が嫌いだ」「幼稚だ」などのコメントが殺到した。

中には、「外国ではマナーを守ろうよ」「海外でK-POPや韓流は人気だけど、韓国人の市民意識のレベルはまだまだ低い」
といった意見や、「日本はほかの国々から好かれているからうらやましい」「台湾は日本が好きだよな」
「台湾は日本に植民地支配を受けたのになぜ親日なのだろう」などと日本と台湾の関係について議論する韓国人ユーザーらもいた。

韓国メディアによると、台湾内の反韓感情は、韓国が中国と国交を結んだのを機に高まった。
2004年に台湾の1人あたりのGDPが韓国を追い越した頃から、反韓感情は強まりをみせているという。
URLリンク(news.livedoor.com)
URLリンク(image.chosun.com)

125:デフォルトの名無しさん
12/03/14 08:03:53.62
PerlでMySQLを叩く時、今まで通りに
文字化け防止で$dbh->do("set NAMES sjis");
とやっていたのですが、新しくデータベースを作成し、そこでinsert文を作成したら
Can't call method "do" on an undefined value
とエラーが表示されます。
何が原因か分かる方いませんか

126:デフォルトの名無しさん
12/03/14 08:37:21.86
>>121
よく見たら警告の出る所では or die ... の部分を省いてた。
つまり単に opendir my $DH, $dir; と書いてた。後付でゴメンね。

>>123
なるほど dirhandle 云々じゃなくて、 my $DH, $dir の部分がリストなのでは?と警告されてるのか。
open my $FH, '<', $filename; の時はこの警告が出ないから気づかなかった。
つまり open のときはイディオムとして処理されてるのか。

127:デフォルトの名無しさん
12/03/14 08:39:35.46
>>125
もしかして
use DBI;

128:デフォルトの名無しさん
12/03/14 08:51:24.56
>>127
ちゃんと記入しています。
SELECT文の時は何も問題なく接続できますが、INSERT文になるとなぜかエラーがでます。

129:デフォルトの名無しさん
12/03/14 09:00:18.46
一番怪しいのは、
その手の常套句であり頻出語の筆頭である
「いままでどおりに」

その時から行った「今まで通り」の手順に何らかの問題がある


130:デフォルトの名無しさん
12/03/14 09:57:26.72
>>125
だから、undefined value なんだろ。$dbh が。

>>126
opendir my $dh, "$dir" でもいいはず。

131:デフォルトの名無しさん
12/03/14 11:14:45.42
>>130
本当にごめんなさい。
自分の頭の中では
$sth = $db->do("set NAMES sjis");
とやってるつもりだったのに・・・
$dbh->do("set NAMES sjis");
なんでこんな書き方してるんだ・・・・・・

132:デフォルトの名無しさん
12/03/14 11:35:25.51
質問です。
DBI.pm、DBD::Pg.pmのソースを見たのですが、
DBIのメソッドexecuteはどこで定義されているのでしょうか?


133:デフォルトの名無しさん
12/03/14 12:25:54.68
>>130
あ、はい。それでようやく分かった。
open my $FH, '<', $filename; は間に '<' が挟まるから
リストの宣言とは解釈しようがないわけね。
どうもありがとー。

134:デフォルトの名無しさん
12/03/14 13:03:22.52
パーサーがコンテキスト読みすぎで
文法が無駄に複雑

135:デフォルトの名無しさん
12/03/14 15:39:57.40
初歩的な質問でごめんなさい

%hashの添え字をスカラー変数名に自動的に置き換えるにはどう言う風に組んだら良いのでしょうか?


$hash{hoge} $hash{moge} $hash{poge},,,,,,
これを
$hoge $moge $poge........
と言う風にしたいのですが、初心者すぎて手作業でしか出来ませんでした。

136:デフォルトの名無しさん
12/03/14 17:12:18.38
こういうこと?

$text = <<'HERE';
$hash{hoge} $hash{moge} $hash{poge}
HERE

$result = "";
while ($text =~ /{(.*?)}/g) {
$result .= "\$$1 ";
}
print $result;


137:デフォルトの名無しさん
12/03/14 17:30:14.63
my $keys = [ qw(a b c) ];
my $values = [ qw(apple banana chocolate) ];
my $hashref = {};
@{%$hashref}{@$keys} = @$values;
print $hashref->{a}, "\n";

perl v5.8.9で実行すると
apple
と表示されるのですが、

perl v5.10.1ではエラーになります。
Can't use string ("0") as a HASH ref while "strict refs" in use at ~~.

perl v5.10.1でもappleと表示されるようにするにはどうすればいいのでしょうか?

138:137
12/03/14 17:48:44.70
自己解決
#@{%$hashref}{@$keys} = @$values;
@{$hashref}{@$keys} = @$values;

139:デフォルトの名無しさん
12/03/14 18:02:18.49
>>136
ありがとうございます。
whileと正規表現を使えばいいんですね。
ありがとうございました。

140:デフォルトの名無しさん
12/03/14 18:40:58.63
socket通信のプログラムを書いていますが、
オブジェクトを送信して、受信側でオブジェクトを参照しようとすると
HASH(0x00)みたいになって参照できないのですが、
何か対処方法はありますか?
以上、よろしくお願いします。


141:デフォルトの名無しさん
12/03/14 18:44:14.61
コードも無しに対処法とは……
俺らのことをもしかしてエスパーか何かだと思ってる?


142:デフォルトの名無しさん
12/03/14 19:10:21.40
うーん。会社から2chに繋がらないのです。
明日USB経由でコードを持ってきて出直します。


143:デフォルトの名無しさん
12/03/14 19:11:13.76
それはそれでいいのかw
・・・まぁ原因部分だけならあれか

144:エスパー魔美
12/03/14 19:44:43.13
>>140
オブジェクトをそのままファイルに保存出来ないのと同じ理由。
Storable、Data::Dumper、JSON などでシリアライズして送信すると良いかも!

145:デフォルトの名無しさん
12/03/14 19:45:26.17
会社って……
だーーーーーれも教えてくれないの???


146:デフォルトの名無しさん
12/03/14 19:51:08.42
>>143
やっぱりわかっていそうだw

送信が
print $socket $obj

受信が、
my $msg = <$client_socket>){
みたいな感じで、
chomp( $msg);
$obj = $msg;

$obj->show_hoge;
↑HASHがうんたらって出てくる。
多分、分かる人はすぐに分かる問題だと思うけど。


147:デフォルトの名無しさん
12/03/14 21:56:16.89
>>144
了解。
ありがとうございます。


148:デフォルトの名無しさん
12/03/14 22:27:17.94
>>145
教えてくれる人がいる方が珍しい
大抵は孤独に独学だよ

149:デフォルトの名無しさん
12/03/14 22:59:40.11
>>132
DBI::DBD::SqlEngine::st::execute
SqlEngine.pmの773行目あたり

>>137
素直にList::MoreUtils使わん?

use List::MoreUtils qw/zip/;
my $keys = [ qw(a b c) ];
my $values = [ qw(apple banana chocolate) ];
my $hashref = +{ zip @{$keys}, @{$values} };
print $hashref->{a}, "\n";

>>146
show_hogeがcoderefだからそのまんまじゃシリアライズしてもダメかもね。
データだけ渡してロジックは受け側が持っとかないと。

150:デフォルトの名無しさん
12/03/14 23:24:05.58
Perl6はいつリリース予定ですか?

151:デフォルトの名無しさん
12/03/14 23:52:28.92
クリスマス

152:デフォルトの名無しさん
12/03/14 23:56:23.47

Digest-SHA-PurePerl-5.71でprint sha512(hoge);が出力されないのはなぜか教えてもらえませんか?

sha256やsha1は出力されるのに。。

153:デフォルトの名無しさん
12/03/15 00:20:03.00
>>145
わかるわー

会社で聞くと、おめーそんなこともわからねーのかふざけんなって、居眠りばかり
してるおっさんプログラマーに怒られる

154:エスパー魔美
12/03/15 02:34:00.68
>>152
エラーメッセージは出た?

手元の環境では動くようだけど。
# This is perl 5, version 12, subversion 3 (v5.12.3) built for darwin-multi-2level
perl -MDigest::SHA::PurePerl=sha512 -e 'print sha512("hoge")'
perl -MDigest::SHA::PurePerl=sha512_hex -e 'print sha512_hex("hoge")'


155:デフォルトの名無しさん
12/03/15 07:33:49.40
>>154さん

ありがとうございます
エラーはでません。指示頂いたやりかたで試してみます。


【ソース】
use lib '../module';
use Digest::SHA::PurePerl qw(sha1 sha256 sha256_base64 sha512 sha512_base64);
print sha256 (a);
print "\n";
print sha256_base64(a);
print "\n";
print sha512(a);
print "\n";
print sha512_base64(a);

【結果】
C:\Perl\work>sha.pl
ハ浴ハスハ惲1ウ・ワMァ・・|Nrケ€w・珒サ
ypeBEsobvcr6wjGzmiPcTaeG7/gUfE5yuYB3ha/uSLs


C:\Perl\work>


156:デフォルトの名無しさん
12/03/15 14:39:03.11
use Digest::SHA::PurePerl;
my $state = Digest::SHA::PurePerl->new(512) or die;

私の環境もこれで死ぬ。
軽くソース追ってみたけど、64bit長の計算ができないと、はねられる模様。

157:デフォルトの名無しさん
12/03/15 18:14:15.64
__END__以下を一気読みして変数に入れるため以下のようなコードを書きました。
しかし一気読みされずこの様に出力されました。
>[あいうえお
>かきくけこ

>]
何故行の区切り文字を無くしたにも関わらず区切られてしまうのでしょうか。
これは仕様なのでしょうか?This is perl, v5.10.1 built for MSWin32-x64-multi-thread


$/ = "";
$data = <DATA>;
print "[$data]";

__END__

あいうえお
かきくけこ

さしすせそ
たちつてと

なにぬねの
はひふへほ



158:デフォルトの名無しさん
12/03/15 18:56:08.33
URLリンク(perldoc.perl.org)
You may set it to undef to read through the end of file.
Setting to "" will treat two or more consecutive empty lines as a single empty line.

159:エスパー魔美
12/03/15 18:56:25.39
>>157
perldoc の説明だと分かりにくいけど、"" は "¥n¥n" と似た動作をする。
多分、undef $/; が答え。

160:デフォルトの名無しさん
12/03/15 19:06:08.11
>>157
これって改行が続いていて、そこが終了と認識されているんじゃないの?
シングルクオテーションでくくってみたら?


161:デフォルトの名無しさん
12/03/15 19:34:13.02
いろいろ参考にしてオリジナルアップローダー作ってみたよ。
基本機能は備えて流れにくいと思うけど、至らない部分あるかも。

URLリンク(111.moo.jp)

162:デフォルトの名無しさん
12/03/15 19:41:13.25
噴いた

163:デフォルトの名無しさん
12/03/15 20:02:39.92
file33.jpg
1234


164:157
12/03/15 20:30:21.12
>>158,159,160
$/ = ""には空行を区切り文字にする、という意味があったのです。
代わりにundefを使うことで目的の動作が実現できました。
""とundefの二種類があることを活用しているのです。
レスありがとうございました。




165:デフォルトの名無しさん
12/03/15 21:19:56.00
パ・パ・パパッパ~Perlライス

166:デフォルトの名無しさん
12/03/16 01:20:27.74
>>161
あれ?アドセンスは?

167:デフォルトの名無しさん
12/03/16 01:58:25.69
sub decimal2binary {
my $decimal = shift;
my $binary = "";
while($decimal>=1) {
$binary = $decimal % 2 . $binary;
$decimal /= 2;
}
$binary;
}

sub binary2decimal {
my $binary = shift;
@binary_ary = reverse split //, $binary;
my $i = 1;
my $result = 0;
for(@binary_ary) {
$result += $_ * $i;
$i <<= 1;
}
$result;
}

print binary2decimal(decimal2binary(5184)); #=> 5184

こういう10進数と2進数の変換関数を書いたのですが、もっとクールにしたいです。添削お願いします。

168:デフォルトの名無しさん
12/03/16 02:20:19.81
>>167
URLリンク(perldoc.jp)


169:デフォルトの名無しさん
12/03/17 15:10:05.60
デバグの時に使うBEGIN{ $| = 1; print "Content-type: text/html; charset=shift-jis \n\n"; open(STDERR, ">&STDOUT"); } は具体的にどう言う動きをするのでしょうか?
&STDOUTでエラーを検知したら、 print "Content-type: text/html; charset=shift-jis \n\n"でSTDOUTの中身を書き出すって感じなのかな?と思うのですが、{ $| = 1;は何を指示してるのでしょうか?感緑化されてるようでちょっと意味がわかりませんでした。
初心者ですみません。

170:デフォルトの名無しさん
12/03/17 15:16:17.28
perldoc嫁ks

171:エスパー魔美
12/03/17 16:11:46.46
>>169

BEGIN{ # コンパイル時に実行されるブロック (sub BEGIN { ... } と同じ)
$| = 1; # STDOUTのバッファリングをオフ
print "Content-type: text/html; charset=shift-jis ¥n¥n";
open(STDERR, ">&STDOUT"); # 標準エラー (STDERR) の出力先をSTDOUTと同じにする。
}

172:デフォルトの名無しさん
12/03/17 18:08:54.19
renameが失敗するのはどういう場合ですか?

173:デフォルトの名無しさん
12/03/17 18:11:14.44
おなじファイルがすでに存在する場合(ファイル名がわるい)

174:デフォルトの名無しさん
12/03/17 18:14:57.02
>>172
同じ名前のファイルがある場合。
同じ名前のディレクトリがある場合。
変更しようとしているファイルが存在していない場合。
ファイル名を変更する権限がない場合。
別のプログラムがファイルを開いていてロックかけている場合。
名前として有効でない記号などが入った名前の場合。
ウイルスに感染している場合。
OSが不調の場合。
HDDが壊れている場合。
パソコンが壊れている場合。
そういう夢を見ていた場合。
電源が入っていない場合。
電力会社が大変な事になっている場合。
世紀末でメシア待ちの場合。
ヤマト発進後のプロジェクト成功待ちの場合。

175:デフォルトの名無しさん
12/03/17 18:36:13.19
エラーバリアブル見ろよ。

176:デフォルトの名無しさん
12/03/17 18:39:38.88
>>172
URLリンク(perldoc.jp)
URLリンク(perldoc.jp)

177:デフォルトの名無しさん
12/03/17 19:54:51.07
>>174
>別のプログラムがファイルを開いていてロックかけている場合

これはflockをしている場合と言うことですか?

178:デフォルトの名無しさん
12/03/17 21:00:48.77
>>171
ありがとうございます。
$| = 1;をどう検索かけても、検索出来なくて途方にくれてました。
そう言う意味だったのですね。

179:デフォルトの名無しさん
12/03/17 21:30:18.96
>>177
OSさんがファイルロックしてる事もある
flock中にファイル名変えれるかどうかはしらん、試せばいいんじゃない?

180:デフォルトの名無しさん
12/03/18 03:25:45.75
>>178 perl 特殊変数 でggrks

181:デフォルトの名無しさん
12/03/18 03:40:58.45
perlvar見ればggr必要すらないがな

182:デフォルトの名無しさん
12/03/18 10:05:31.14
最近の2ちゃんは略字が多くてわかりづらくなってしまったな

最近常用となってしまった2ch略字
kwsk 詳しく
wktk ワクワクテケテケ
ktkr キタコレ
mjkt マジキチ
iksg 今北産業
opop おっぱいおっぱい
drum だれがうまいこと言えといった
omor お前は俺か
morkw またお前らかよw
ohh2ckyw お前ら平日の昼間から2ちゃんかよw
mjkt マジキチだからやめろ
ggrks→これはわからん・・

183:デフォルトの名無しさん
12/03/18 10:07:41.42
perldocとか使いませんですしおすし
俯瞰出来る.jpはたまに見る

184:デフォルトの名無しさん
12/03/18 10:49:58.65
>>182
mjktが2通りあるぞ
ここまでわかってggrksがなぜわからぬ
ネタとしてはあまりにつまらなすぎて意味不明だからマジボケなんだろうけど

185:デフォルトの名無しさん
12/03/18 12:15:40.68
>>182
「今北産業」「だれうま」「おま俺」「マジキチ」というのが略記であって
その一覧はアブジャド系表記にしか見えんが…
ggrksはググれカス

186:デフォルトの名無しさん
12/03/18 12:16:48.20
いや、iksgは流石にアブジャドだけじゃ足らずに略もしてるか

187:デフォルトの名無しさん
12/03/18 12:22:50.40
ここまでコピペ

188:デフォルトの名無しさん
12/03/18 14:51:39.52
iksg イキすぎ

189:デフォルトの名無しさん
12/03/18 15:48:41.69
若者のマニュアル離れが深刻。

190:デフォルトの名無しさん
12/03/18 15:49:59.80
マニュアル離れって・・・そこらのオッサンの方がマニュアル読まないだろうがw

191:デフォルトの名無しさん
12/03/18 15:51:49.94
さすがにμ即ネタは食いつきが違うな。

192:デフォルトの名無しさん
12/03/18 16:09:03.38
待て、マニュアルは使うな!マニュアルは最後の武器だ!

193:デフォルトの名無しさん
12/03/18 16:55:36.06
マニュアルモード カラ オートメーションモード ヘ イコウシマス

194:デフォルトの名無しさん
12/03/18 17:25:33.53
思い込みという脳内マニュウアルが最優先です。

195:デフォルトの名無しさん
12/03/18 18:36:54.48
その点、Perlはマニュアルがいらないからいいよね。

196:デフォルトの名無しさん
12/03/19 00:24:43.92
いやだからperldocは見ねえと言ってるだろ!

197:デフォルトの名無しさん
12/03/19 13:17:23.74
LWP使っています。
javascriptが有効であるかのように振る舞う方法があったら教えてもらえませんか?

198:デフォルトの名無しさん
12/03/19 13:42:35.06
>>197
URLリンク(search.cpan.org)
URLリンク(e8y.net)

199:デフォルトの名無しさん
12/03/19 15:35:17.24
ふつうはopenしてflockしますけど、
これロックファイル無しで一体化できませんかね

200:デフォルトの名無しさん
12/03/19 17:23:10.08
>>199
OSによっては sysopen で O_EXLOCK か O_SHLOCK が利用できる
URLリンク(perldoc.jp)
URLリンク(perldoc.jp)

201:デフォルトの名無しさん
12/03/19 17:28:02.62
>>200
ありがとう
おれLinusだから利用できないわ

202:デフォルトの名無しさん
12/03/19 22:50:45.14
おや、ご旅行ですか?

203:デフォルトの名無しさん
12/03/19 23:20:08.53
はい
URLリンク(www.linuxinsight.com)

204:デフォルトの名無しさん
12/03/20 01:04:38.17
>>203
やったね!アンディー!

205:デフォルトの名無しさん
12/03/20 07:25:17.18
ウィキ作った。
書くの手伝って。
URLリンク(goo.gl)

206:デフォルトの名無しさん
12/03/20 07:38:39.74
PerlにはRubyでいうyugui本みたいなのはありますか?
思い当たるものがありましたら教えて頂けると嬉しいです _ _

207:デフォルトの名無しさん
12/03/20 07:41:31.61
リャマ本ってこと?

208:206
12/03/20 07:52:02.22
>>207
返信ありがとうございます。リャマ本とラクダ本は過去に読んだのですが、
リャマ本はプログラミング初心者を対象としており
(プログラミング経験者には記述が冗長で、また仕様が十分に記されていない)
ラクダ本は小さく纏まっていない気が私的にはするのです。
Perlの仕様を必要十分に短く簡潔に記述したものが知りたく
yugui本という例えを使いました。言葉足らずで申し訳ありません;

209:デフォルトの名無しさん
12/03/20 08:45:19.33
小型高速船で未明上陸、韓国人男女7人密航容疑


 第7管区海上保安本部(北九州市)と大阪府警は19日、韓国からの密航者や密航の仲介をした
韓国人の男女計7人を入管難民法違反(営利目的の集団密航助長など)容疑で逮捕した、と発表した。

 同本部の発表によると、7人は仲介した無職鄭舜晧(42)、ホステス梁英美(46)の両容疑者
(いずれも名古屋市在住)ら。
 鄭容疑者は昨年6月30日夕、韓国南部で小型高速船に女性3人(45~51歳)を乗せ、
同7月1日未明に山口県下関市の小串漁港に不法上陸させた疑い。

 梁容疑者は千葉県柏市と大阪市の韓国人女性2人(32、53歳)を同船で出国させるため、
同漁港まで車で運ぶなどした疑い。

 女性たちは1人50万~100万円の報酬を支払っていたという。
 同本部は鄭、梁両容疑者は密航請負組織の一員とみている。

 大阪府警が昨年10月、不法上陸した3人のうちの1人を不法在留の疑いで逮捕し、集団密航が発覚。
 3人はすでに全員逮捕、起訴され、有罪判決を受けた。

(2012年3月19日21時08分 読売新聞)
URLリンク(www.yomiuri.co.jp)

210:デフォルトの名無しさん
12/03/20 11:44:50.83
スレッドを生むスレッドってどーやって作るの?


211:デフォルトの名無しさん
12/03/20 12:21:20.66
perlの処理順番について質問です

1:プロセス1とプロセス2を全くの同じ時間に起動した場合
全く同じ行の全く同じ部分が同時に実行されるのか?

2:プロセス1を先に起動して、その0.01秒後くらいにプロセス2を起動した場合
プロセス1の1行目はプロセス2の1行目より0.01秒はやく実行されるだろうが
それ以降の行でもプロセス1の方がプロセス2よりも0.01秒はやく実行されているのか?
例えばプロセス2の100行目がプロセス1の100行目より先に実行されるということはないのか?
教えてください

212:デフォルトの名無しさん
12/03/20 12:25:05.64
>>211
CPUの数はいくつありますか?(マルチコアですか?)

213:デフォルトの名無しさん
12/03/20 12:27:53.24
>>212
CPUいくつあるかわからないので
1つの場合と複数の場合について教えてください

214:デフォルトの名無しさん
12/03/20 12:32:12.48
>>211
すべては不定です

215:デフォルトの名無しさん
12/03/20 18:03:41.46
処理の順番が狂うとうまくいきません

yomikomi.cgi
y-1:readlockファイルがない場合
y-2:writelockファイルを作る
y-3:readlockがあればsleepで待つ
y-4:読み込んで表示

kakikomi.cgi
k-1:readlockファイルを作る
k-2:writelockファイルを作る
k-3:sleepで待ってreadlockとwitelockファイルが作成できたら
k-4:書き込む

処理の順番がy-1~y-4,k-1~k-4となる場合や
k-1,y-1,k-2,y-2,k-3,y-3,k-y,y-4となる場合は問題ないのですが
yー1とyー2の間にkー1とkー3が割り込んだら
ロックができない状態になります
どうすればいいんでしょうか?

216:デフォルトの名無しさん
12/03/20 18:17:08.11
そういうのはひとつのロックファイルで排他ロックと共有ロックを使う

217:デフォルトの名無しさん
12/03/20 18:52:23.67
DB使いなよ。

218:デフォルトの名無しさん
12/03/20 19:09:26.49
>>217
バカのひとつおぼえだな

219:デフォルトの名無しさん
12/03/20 19:12:40.39
>>218
もしかしてDBまでモダンだと思ってるの?

220:デフォルトの名無しさん
12/03/20 19:17:40.90
>>217

=─‐\\‐  /─'''''ニ二\''' |レレゝゝ、\
 ̄く<<く >, ゙、/<三三二\ ̄\ゝゝゝゝゝゞ''ヽ、
<<<<〈__入 ゙、く彡三三三二ヽくゝ\メメメゝ、_ゝ、\
くく<<<<<< ゙、 ゙、ミ三三二ニ─ゝゝゝゝゝ,,,,,,,、 '( ゙''ヽ、ヽ、
くくくくくく彡‐ヽ ゙、ミ三三二ニ'''くくゝゝ_ゝゝ、\\_,>」ノ,
く く く く く 彡゙、゙、三三二ニ‐くゝ、/ ,,,,,,,,メメゝヽ''''"ゝゞ丶、
二─二二彡彡、゙、三三二==くメゝ/   ゙'ヽ、メゝゝゝゝゝゝゞ''ヽ-、,,,,,,_
‐'''" ̄ \彡彡ミ、゙、三二=''"く<メ/::      \''-、メメゝゝゝ_ゝ 、 ,,、ヽヽ
、  ,,,,- ゙彡//ヾ、三二= くゝ/:::....      \>∠レ-,-‐ニ二メヽ''ヽ ノ
 ゙ヽ、,,,-‐//_///,,、゙、三二=  ゙、 ""'''      ヽ>//レレヽ,,___  /
-,,,,,,-‐'''"""/////,,ヽ ゙、三二─ ゙ヽ.         //-ヘヘ,、 レレレレノ  さあ願いを言え
''"      ,l|"////ノ,、\彡'''''‐-ニ,、 ::::::::::,,,,,,,,//    ゙ヽフ/|/| レ'  どんな願いも聞き流してやろう。

221:デフォルトの名無しさん
12/03/20 19:18:45.87
>>220
面白いと思ったの?

222:デフォルトの名無しさん
12/03/20 19:27:35.32
ドラゴンボールな、はいはい。

223:デフォルトの名無しさん
12/03/20 19:59:24.98
/`゚`ii´゚`ヽ

224:デフォルトの名無しさん
12/03/20 21:20:27.97
米政府 韓国メーカーに不当廉売関税適用へ

米商務省の決定文によると、サムスン電子の冷蔵庫に対しては韓国製に5.16%、メキシコ製に15.95%の同関税を課す。
LG電子については、韓国製に15.41%、メキシコ製に30.34%をそれぞれ課す。
同関税はダンピング(不当廉売)によって、国内産業が被害を受けないよう通常賦課される関税に加え特別に課す税金。

URLリンク(japanese.yonhapnews.co.kr)


【FTA】 米国政府 「サムスンとLGは不当廉売なので関税をもらいます!」 ★2
スレリンク(poverty板)

前スレ
【FTA】 米国政府 「サムスンとLGは不当廉売なので関税をもらいます!」
スレリンク(poverty板)


225:デフォルトの名無しさん
12/03/20 21:58:33.06
>>211, >>215
どうなるかは不定(決まってない、どっちになるか分からない)、としか答えようがないでそ。
どうしても特定の順番で処理させなきゃいけないんなら、
排他ロックを適切にかけながら処理するしかない。
そしてもちろん排他ロックにはアトミックな仕掛けを使わなくてはいけない。
ただそれだけのこと。
DB使えってのはDBMSがそのへんの排他制御を比較的よきにはからってくれるから。

226:デフォルトの名無しさん
12/03/20 22:29:23.12
flockとかそういう話じゃなくて?

227:デフォルトの名無しさん
12/03/20 22:31:28.02
flockでもいいんじゃない?使える環境なら

228:208
12/03/20 22:32:19.30
どなたか宜しければお願いします _ _
perldoc辺りが最善手になるんでしょうか・・・

229:デフォルトの名無しさん
12/03/20 22:35:17.84
プログラミングの基礎を学びたいのか実戦で効率的にやりたいのかどっち?

230:208
12/03/20 23:05:01.65
>>229
返信有難う御座います。プログラミングの基礎を学びたいわけではないです。
かといって、実践で(仕事で)使えればそれで良いかと言えば
Perlは既に仕事で何度も使っているのでそういう訳ではないです。

Perlの仕様を隅々まで(と言っても限度はありますが
少なくともラクダ本にある程度は)把握したいです。

ですが、ラクダ本をもう一度全て読むのは分量があるので御免被りたいです。
ワガママですみません;

231:デフォルトの名無しさん
12/03/20 23:09:53.61
>>230
Perlの隅々の仕様の把握ならラクダ本ほど楽な方法も中々ないぞ
一気に読もうとせず、毎日コツコツ読むだけでも随分違うかと
今まで知らなかった仕様を知ることができるかもよ

232:デフォルトの名無しさん
12/03/20 23:52:47.86
>>230
URLリンク(www.modernperlbooks.com)
Modern Perlはそこそこまとまってた。
ざっくりPDF版を読んでみたら。

233:デフォルトの名無しさん
12/03/21 00:43:36.81
毎日20ページ読むだけで2週間ありゃ読み終わる

234:デフォルトの名無しさん
12/03/21 00:52:29.28
1ページの半分読んで眠くなる

235:デフォルトの名無しさん
12/03/21 01:08:33.44
ディレクトリがあるかどうか調べるとき
ディレクトリがない場合というのelseやunlessを使うしか方法はないんでしょうか?
elseやunlessはあまり使いたくないんだけど

if(-d "test"){
print "ディレクトリがあります";
}
else{
print ""ディレクトリがありません;
}

236:デフォルトの名無しさん
12/03/21 01:34:57.79
not -d

237:デフォルトの名無しさん
12/03/21 01:39:19.27
>>230
そんな君にはポケットリファレンスがよかろう

238:デフォルトの名無しさん
12/03/21 01:53:56.47
あの青いやつか

239:デフォルトの名無しさん
12/03/21 09:40:35.99
痴漢するときに、入力したファイルをそのまま変換するのって
どんなオプションでしたっけ

240:デフォルトの名無しさん
12/03/21 09:42:10.93
自己解決しました。 やっぱり愛なのね。

241:デフォルトの名無しさん
12/03/21 09:53:20.77
>>239,240
なにうまいこというとんねん!


242:デフォルトの名無しさん
12/03/21 10:27:36.31
関数の戻り値を変数に代入する場合、そのまま利用する場合と比較して、メモリは倍必要になるのでしょうか?

my $data = large_data();
print $data;

print large_data();

243:208
12/03/21 11:17:49.63
>>231
ありがとうございます!検討してみます。

>>232
まさにこういうの探していました!本当に有り難うございます _ _
みなさん長々とお付き合いありがとうございました _ _

244:デフォルトの名無しさん
12/03/21 15:59:42.57
>>243
行末の「 _ _」が気になる。なんの暗号だ。

245:デフォルトの名無しさん
12/03/21 16:00:40.80
>>236
> not -d
! -d を使ってる。理由は忘れた。

246:デフォルトの名無しさん
12/03/21 16:06:37.64
>>244
m(_ _)m 的なものだと思われる

247:デフォルトの名無しさん
12/03/21 16:08:37.06
m(_ _)m → m _ _ m → _ _ → ?

248:デフォルトの名無しさん
12/03/21 16:33:26.80
( @益@)

249:デフォルトの名無しさん
12/03/21 16:42:41.27
>>246
>>247
なるほど。Thanks.

250:デフォルトの名無しさん
12/03/21 19:09:23.68
排他ロックはmkdirを使うやりかたがいろいろ紹介されていますが
共有ロックはflockを使う以外では見たことありません
flockを使わないで共有ロックをするのは隙間ができたりして難しいのでしょうか?

251:デフォルトの名無しさん
12/03/21 19:26:00.44
>>250
別に難しくもなんともないが、mkdirだのあのあたりの方法は
プログラムが死んだときにロックしっぱなしになるので
自分では絶対に採用しないな。

252:デフォルトの名無しさん
12/03/21 19:32:51.02
URLリンク(perldoc.jp)
'exec' は Perl の組み込み関数ではありません。

え?

253:デフォルトの名無しさん
12/03/21 19:37:17.22
hint: 404

254:デフォルトの名無しさん
12/03/21 21:56:47.17
>>252
おいおい知らなかったのかよ

255:デフォルトの名無しさん
12/03/21 23:54:25.80
シェルの関数でしょ

256:デフォルトの名無しさん
12/03/22 00:33:19.22
最終的にシェルだとかシステムコールにたらい回されるにしたって、
perlfuncに載ってるexecはPerlの組み込み関数でしょ。

URLリンク(perldoc.jp)
execのほかにforkやexitもだけど、リンクはあるのにクリックすると組み込み関数じゃありませんってのはおかしいので何かの手違いだろう。

257:デフォルトの名無しさん
12/03/22 00:38:24.69
URLリンク(perldoc.jp)
手違いっぽいね

258:デフォルトの名無しさん
12/03/22 00:41:59.19
そりゃあ簡単だ
forkなんてUNIXの方の機能じゃん
だからperlのモンじゃあない

execもexitも同じ、perlの組み込みじゃない


259:デフォルトの名無しさん
12/03/22 01:02:12.03
手違いというより単に翻訳済みのドキュメントがないってことでしょ


260:デフォルトの名無しさん
12/03/22 01:44:20.59
>>258
システムコールforkをPerlから呼ぶためにはPerlの組み込み関数forkが必要だろ。
それに、perlはUNIXだけのモンじゃあない。Perlの関数forkは非UNIXではそれに応じた動作をしなけりゃならない。

>>259
URLリンク(perldoc.jp) からは見れるからやっぱり手違いだろう。

261:デフォルトの名無しさん
12/03/22 01:52:16.27
んじゃそっちからこっちへアップデートされてないってことで



最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch