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

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
CGI についての質問は板違いです。WEB プログラミング板でどうぞ。
CGI と Perl の区別がつかない人も WEB プログラミング板に行ってください。
(WEB プログラミング板: http://hibari.2ch.net/php/ )

このスレでは(CGI 以外の)純粋にPerlのみに関係する質問を取り扱っていこうと思います。
スレ違いの質問にはスルーか、速やかな誘導をお願いします。

"The duct tape of the Internet" こと、Perl についての質問箱です。
"There's more than one way to do it" ということで、
Perl の奥深さについて皆で語り合い、追求してまいりましょう。

http://www.perl.org/get.html
● 2011/10/30 現在の最新版: 5.14.2

▼ 前スレ
Perlについての質問箱 49箱目
http://toro.2ch.net/test/read.cgi/tech/1319953460/
リンク集は >>2-3辺り
Perl 日本語処理の基礎の基礎 >>4辺り
2デフォルトの名無しさん:2012/01/18(水) 02:58:43.37
[プログラミング自体の経験が無い奴はまずココを読め]
Perl プログラミング講座: ttp://www.site-cooler.com/kwl/perl/

[本]
リャマ: ttp://www.oreilly.co.jp/books/9784873114279/
駱駝: ttp://www.oreilly.co.jp/books/4873110963/
Effective Perl: ttp://ascii.asciimw.jp/books/books/detail/4-7561-3057-7.shtml
クックブック: ttp://www.oreilly.co.jp/books/4873112028/
Perl ベストプラクティス: ttp://www.oreilly.co.jp/books/4873113008/
Perl Hacks: ttp://www.oreilly.co.jp/books/9784873113142/

[オンラインマニュアル]
最新のドキュメント: ttp://search.cpan.org/dist/perl/
perldoc.jp: ttp://perldoc.jp/
perldoc.perl.org: ttp://perldoc.perl.org/
3デフォルトの名無しさん:2012/01/18(水) 02:59:04.49
4デフォルトの名無しさん:2012/01/18(水) 02:59:23.08
# [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デフォルトの名無しさん:2012/01/18(水) 02:59:49.36
Encodeモジュール (現在のPerl文字コードの標準)
http://search.cpan.org/dist/Encode/

UNICODEでわからなくなったらここを読め
http://perldoc.jp/docs/perl/5.8.1/utf8.pod
http://perldoc.jp/docs/perl/5.10.0/perlunifaq.pod
6デフォルトの名無しさん:2012/01/18(水) 07:56:08.27
DBIを使ってMySQLなどのデータベースを扱う時に、
データベースへ送るSQL文はutf8へエンコードした方が良いのでしょうか?

$dbh->do(encode_utf8("UPDATE table SET name = 'てすと〜〜〜'"));

このように書いても、また、encode_utf8を抜いて書いても、
どちらで試してもエラーは出ず、文字化けするような事もありませんでした・・・
不要ならオーバーヘッドが起きるのでencode_utf8せず処理したいのですが、
一応utf8へエンコードしておいた方がよいでしょうか・・・?
7デフォルトの名無しさん:2012/01/18(水) 08:59:16.41
>>4

前に書いたけれど、

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

は実際には

use open qw(:encoding(cp932) :std);

で充分じゃないの?
8デフォルトの名無しさん:2012/01/18(水) 09:18:22.98
>>6

DBI は Perl のエンコードのことは考えずに、SET NAMES で指定したエンコー
ディングで文字列がエンコードされているものとみなすので、UTF-8 なら引数
を encode しようがしまいが関係なしのはず。

select で返ってきた値は decode しないとその後の処理でおかしくなる可能性
が高い。
9デフォルトの名無しさん:2012/01/18(水) 09:38:05.76
>>8
教えてくれてありがとうございます。
わかりました、selectで取得する時だけdecodeするようにします。

何度も申し訳ないですが、もう一つ質問させてください。

オブジェクトを作って、インスタンス化し、
そのメソッド名を変数で指定する事は可能でしょうか?

input1、input2、input3 というメソッドがある場合、

my $obj = MyObject->new();
@list = (input1, input2, input3);

for my $m (@list) {
  $obj->$m("代入");
}


雰囲気的にはこんな感じで処理したいのですが・・・
もちろん、これではエラーが出てうまく動きませんでした。
どうすればうまく動いてくれるでしょうか・・・
10デフォルトの名無しさん:2012/01/18(水) 10:18:49.41
>>9
> $obj->$m("代入");
これは可能。

http://perldoc.jp/docs/perl/5.10.0/perlobj.pod#Method32Invocation
> 矢印の右側は典型的にはメソッド名ですが、メソッド名やサブルーチン
> リファレンスが入った単純スカラ変数も使えます。

> @list = (input1, input2, input3);
my @list = qw(input1 input2 input3);
11デフォルトの名無しさん:2012/01/18(水) 10:29:41.60
>>10
教えていただきありがとうございました。

可能だと言われ、見なおした所・・・
配列に入れてたメソッド名をタイプミスしてました・・・

助かりました、ありがとうございました。
12デフォルトの名無しさん:2012/01/18(水) 11:17:21.10
コマンドプロンプトでperlを実行するにはどうしたらいいんですか?
コマンドプロンプトウィンドウにソースコードファイルをドラッグしてエンター押しても
ファイルが開くだけでした。
今まではBJDなどの簡易サーバーでブラウザで実行結果表示していたからやり方わからないです
13デフォルトの名無しさん:2012/01/18(水) 11:24:31.37
perl perlscript.pl
14デフォルトの名無しさん:2012/01/18(水) 11:30:41.49
15デフォルトの名無しさん:2012/01/18(水) 20:17:30.94
>>12
コマンドプロンプトの扱い方から勉強しなおせよ糞
コマンドプロンプトの使い方知ってたらファイルドラッグとかするわけないだろ
Perl以前の質問をPerlスレでするとか荒らし?
16デフォルトの名無しさん:2012/01/18(水) 23:18:51.34
スレ違いの質問にはスルーか、速やかな誘導をお願いします。
17デフォルトの名無しさん:2012/01/18(水) 23:33:05.75
>>7
use open qw(:encoding(cp932) :std);
だと単語数が多い割にはドキュメント性が低くて、何を cp932 と
するのか分かりにくいのが難点。せめて :std がデフォルトになっ
ていて、省略できればよかったのに。
18デフォルトの名無しさん:2012/01/19(木) 04:12:48.44
はいはいそうだね
19デフォルトの名無しさん:2012/01/19(木) 18:11:56.44
open(OUT,">test.dat");
close(OUT);

このように空のファイルを作ったときエディタを開くと文字コードがshift-jisになっています。
エディタのステータスバーの右下のところがsjisになってます。
空のファイルでもEUCかUTF-8形式にしたいです。
どうすれば文字コードを指定してファイルの作成ができるのですか?
20デフォルトの名無しさん:2012/01/19(木) 18:25:56.46
>>19
エディタのデフォルト設定の問題ですよね。
21デフォルトの名無しさん:2012/01/19(木) 19:54:33.01
ここまでのアフォがいるとはさすがに思わなんだ……
ゆとりとかそういうレヴェルを遥かに超越したとんでもないks・kzだ
お前にゃあプログrマイング一切は向いていない
22デフォルトの名無しさん:2012/01/19(木) 20:38:57.78
なるほど、それであれほど言われてもSHFT-JISに固執してたのか
謎が解けたよ

ぶっちゃけ君にパソコンは無理
いや、煽りとかそんなんじゃなくて、真面目な話で
23デフォルトの名無しさん:2012/01/19(木) 20:39:55.16
>>21
>お前にゃあプログrマイング一切は向いていない

文法エラー
24デフォルトの名無しさん:2012/01/19(木) 21:28:34.09
>>19
ゴミは帰れよ
25デフォルトの名無しさん:2012/01/19(木) 22:07:38.62
Net::Twiterとかそのあたりで、TwitterのURLから書き込み内容とかのデータを取得するAPIってないかな。
CPANのドキュメント漁ってるけど見つからない・・・俺が節穴なのかな。
26デフォルトの名無しさん:2012/01/19(木) 22:15:38.31
http://twitter.com/username/status/{status_id}
からその内容を取りたいってこと?
Net::Twitter(::Lite)?のドキュメント読んでそれが見つからないと言ってるのなら節穴なのかもね
27デフォルトの名無しさん:2012/01/19(木) 22:16:28.00
> Twiter
たぶんfusianaなんだろうなー

> TwitterのURLから書き込み内容とか
こっちのつづりは合ってるのにな―
28デフォルトの名無しさん:2012/01/19(木) 22:20:10.49
節穴とゴミしかいないスレwwwwww
29デフォルトの名無しさん:2012/01/19(木) 22:21:29.66
>>26
そう。やっぱりあるよな。俺が節穴すぎるのか。
見なおしてくる。
30デフォルトの名無しさん:2012/01/19(木) 22:21:49.70
ゴッミでぇーーーすッ!!!!
31デフォルトの名無しさん:2012/01/19(木) 22:24:45.73
ゴミはゴミ箱へ
32デフォルトの名無しさん:2012/01/19(木) 22:32:37.04
スレ違いの質問にはスルーか、速やかな誘導をお願いします。

と言いましたが、アフォなので誘導は不要です。単にスルーでお願いします。
33デフォルトの名無しさん:2012/01/19(木) 22:49:19.95
ああ見つかった。俺節穴だな・・・。
34デフォルトの名無しさん:2012/01/19(木) 23:17:51.29
chinge
35デフォルトの名無しさん:2012/01/19(木) 23:34:08.31
and Aska
36デフォルトの名無しさん:2012/01/19(木) 23:42:46.80
Perl5.005までは

Perlについて
ttp://toro.2ch.net/test/read.cgi/tech/1217851121/l50

を使って同じ質問が繰り返されないようにすることを提案します。
37デフォルトの名無しさん:2012/01/19(木) 23:45:58.11
うるさいゴミ
38デフォルトの名無しさん:2012/01/20(金) 01:50:05.47
>>36=ただの自治厨
39デフォルトの名無しさん:2012/01/20(金) 02:11:40.81
hoge.plがおいてあるフォルダにあるテキストファイル名を
取り込みリストに格納したいのですがどうしたらできますか?
40デフォルトの名無しさん:2012/01/20(金) 02:13:26.80
要するに ls *.txt の結果を受け取りリストに格納したいのです
41デフォルトの名無しさん:2012/01/20(金) 05:38:32.82
opendir(my $dh, './') or die $!;
my @list = grep(/\.txt/ ,readdir($dh));
closedir($dh);
42デフォルトの名無しさん:2012/01/20(金) 05:41:25.50
あ、plおいてあるとこるか
'./ 'をdirname($0)に変更かな
use File::basenameしといて
43デフォルトの名無しさん:2012/01/20(金) 12:47:09.53
>>22
PCインストラクター、SE、PGもやってきているのでパソコンが無理ってことはないです
パソコンは会社で一番できるし、上司よりもできるのでパソコンは得意です
44デフォルトの名無しさん:2012/01/20(金) 12:48:18.90
perlで2次元配列を使うにはどうすればいいのか教えてください
45デフォルトの名無しさん:2012/01/20(金) 13:01:22.37
>>43
偽物乙
子供が用語だけ並べてもダメよ
46デフォルトの名無しさん:2012/01/20(金) 13:16:36.03
>>44


このゴミ何?
47デフォルトの名無しさん:2012/01/20(金) 14:10:35.25
>>44
リファレンスを使うんだ
48デフォルトの名無しさん:2012/01/20(金) 15:09:56.81
>>43
そのパソコン大先生が何でこんなスレで質問なんかしてるの?
49デフォルトの名無しさん:2012/01/20(金) 16:44:50.86
50デフォルトの名無しさん:2012/01/20(金) 16:56:05.01
>>42
こうなったんですが・・・
ちなみにperl hoge.plはエラーはないものの正しく動作しません

$ cpan -i File::Basename
CPAN: Storable loaded ok (v2.20)
Going to read '/home/****/.cpan/Metadata'
Database was generated on Fri, 20 Jan 2012 05:11:07 GMT
Running install for module 'File::Basename'
CPAN: YAML loaded ok (v0.71)
The most recent version "2.83" of the module "File::Basename"
is part of the perl-5.15.4 distribution. To install that, you need to run
force install File::Basename --or--
install F/FL/FLORA/perl-5.15.4.tar.gz
CPAN: Time::HiRes loaded ok (v1.9719)
Running make test
Can't test without successful make
Running make install
Make had returned bad status, install seems impossible
51デフォルトの名無しさん:2012/01/20(金) 17:57:57.85
>>50
5.15.4 なら File::Basename は標準で入っているのでわざわざ入れなくていい。
>>41-42 の言わんとしている事はこう。

#!/usr/bin/perl -w
use strict;
use File::Basename; # http://search.cpan.org/dist/perl/lib/File/Basename.pm
my $path_separator = '/';
my $dir = dirname($0); # http://perldoc.jp/docs/perl/5.14.1/perlvar.pod
opendir(my $dh, $dir) or die $!;
print map "$dir$path_separator$_\n", grep(/\.txt\z/, readdir $dh);

# もしくはこう。
print map "$_\n", glob "$dir$path_separator*.txt";

# 本当に ls *.txt が欲しいのならこう。
print `ls *.txt`; # http://perldoc.jp/docs/perl/5.14.1/perlop.pod#Quote-Like32Operators
52デフォルトの名無しさん:2012/01/20(金) 18:28:25.53
↑クソワロタwwwwwwwww
53デフォルトの名無しさん:2012/01/20(金) 19:57:50.62
>>51
perl v5.10.1 だったのですができました。
ありがとうございます。
失敗してた理由はいまから調査します。
54デフォルトの名無しさん:2012/01/20(金) 20:08:47.55
>>53>>50>>40>>39ですが
ただしく作動しなかった理由がわかりました。
デバッグしてる時の話ですが
ある場所で処理を止めたいので
sleep(100);
を挟んでいました。sleepはちゃんと止めたい場所の下に入れてたのですが
どうも出力が遅れる事が多いのです。
なぜだかわかりません。環境はcygwinです。
<>;で止めるほうがいいのでしょうか?

$ uname -r
1.7.9(0.237/5/3)

$ perl -v
This is perl, v5.10.1 (*) built for i686-cygwin-thread-multi-64int
(略)
55デフォルトの名無しさん:2012/01/20(金) 20:18:10.53
>>44
ものぐさなPerlの世界へようこそ。
他のスクリプト言語に慣れているのならperlrefとperlvarを一読することをお勧めします。

Perlでは配列をネストしようとするとすべてペッタンコに並列化してしまいます。
my @aa = ('foo', 'bar');
my @ab = ('hoge', 'fuga');
my @ac = (@aa, @ab); # => ('foo', 'bar', 'hoge', 'fuga')
$ac[2]; #=> 'hoge'

二次元配列を扱う場合はリファレンスを使って下さい。
my @ac = (\@aa, \@ab); # => (['foo', 'bar'], ['hoge', 'fuga'])
$ac[1]->[0]; #=>'hoge'

並列化する意図がなければ、配列を全てリファレンスとして扱う方が分かりやすいかもしれません。
my $aa = ['foo', 'bar'];
my $ab = ['hoge', 'fuga'];
my $ac = [$aa, $ab];
$ac->[1]->[0]; # => 'hoge', これは次のように省略できます。
$ac->[1][0];

次は一時変数の時にお会いしましょう。ごきげんよう。
56デフォルトの名無しさん:2012/01/20(金) 20:29:21.69
>>54
Perlにはデバッガーがついています。
便利ですので、眠たがらずに是非活用しましょう。
http://d.hatena.ne.jp/perlcodesample/20100302/1269670120
57デフォルトの名無しさん:2012/01/20(金) 20:43:49.46
>>56
デバッガーがある事を知りませんでした。
使ってみます。
ありがとうございました
58デフォルトの名無しさん:2012/01/20(金) 22:24:17.89
Perlの基本はあらかたわかったけどどういう時にどういうモジュール使えば良いのかよくわからんな
これは自分で調べながら経験を積むしか無いのか
59デフォルトの名無しさん:2012/01/21(土) 01:05:01.17
モジュール探すのは時間がかかるし解説サイトが英語ばかりだから
ちょっとしたものは自分で作る方が早いよ
なんでもかんでもモジュールに頼るとプログラミング力が養われない
60デフォルトの名無しさん:2012/01/21(土) 01:09:01.61
>>59
LWPなしにネット関係の処理すると思うとぞっとします。
61デフォルトの名無しさん:2012/01/21(土) 01:26:13.81
>>59
こういうこと言う奴が既存のモジュールよりもいい物を作れたためしがない
62デフォルトの名無しさん:2012/01/21(土) 02:02:55.88
難しい理由の一つに英語を挙げるヴァカがいるのはこのスレですか?
自分の頭の悪さではなく言語を言い訳にするとかガチ池沼w
さっさと回線切ればいいのにwww
63デフォルトの名無しさん:2012/01/21(土) 02:38:05.80
いまさらplaggerをlinuxにインストールしようとしてるんだけど、
今はもうできないの?
CPANから全然入らない。
64デフォルトの名無しさん:2012/01/21(土) 03:58:50.99
ソース落としてきてコンパイルすればすむ話だろ
65デフォルトの名無しさん:2012/01/21(土) 07:31:44.56
>>63
自分はcpanmでできました。
どうしてもだめならテストかっとばしたらどうでしょう。
66デフォルトの名無しさん:2012/01/21(土) 07:34:26.98
>>56
何も環境を用意しなくても、-d を指定するだけで使える便利さ。
それに比べてPHPときたら…
67デフォルトの名無しさん:2012/01/21(土) 11:33:14.02
PHP使ってる奴は情弱
脳に問題あるのかと思うくらい情弱
68デフォルトの名無しさん:2012/01/21(土) 13:51:32.86
【プログラミング部】 PHPが100倍速で動くようになったぞー
http://awabi.2ch.net/test/read.cgi/poverty/1327050821/
69デフォルトの名無しさん:2012/01/22(日) 12:28:25.82
UTF8にしたのに文字列の中でユニコードの特殊文字が使えません。

例えば○の中にRが入っている文字®という文字を文字列の中に入れたいんですが
この文字列をエディタにコピペするとただのRになってしまいます。

$str = "あああ®www";というようにしたいのですがうまくいきません。
UTF8ではユニコード文字が使えるんじゃなかったのですか?
70デフォルトの名無しさん:2012/01/22(日) 12:33:46.33
UTF8が使えるエディタに変更してください。
Perlとは全く無関係の話です。
71デフォルトの名無しさん:2012/01/22(日) 15:14:56.72
>>69
Perl関係ないのに書き込むなよゴミ
72デフォルトの名無しさん:2012/01/22(日) 18:08:49.84
いいだろカス
73デフォルトの名無しさん:2012/01/22(日) 18:17:42.73
病的折衷主義のガラクタ出力装置から出てくるのはやっぱりゴミカスか
74デフォルトの名無しさん:2012/01/22(日) 18:34:04.56
だったらPython使えよ
外人が作ってて書き方は一つしかないきっちりしたPythonを!
75デフォルトの名無しさん:2012/01/22(日) 18:41:25.91
> 外人が作ってて
お前はゴミカス同様に欧米コンプとかあんのか?
アフォじゃねーの?
何人が作ろうと関係ないじゃんか
これだから低能のksは困る
巣に引っ込んでろgm
76デフォルトの名無しさん:2012/01/22(日) 20:00:47.37
突っ込むようなところじゃないのに突っ込んでファビョってるヴァカは可哀想としか言いようがない
77デフォルトの名無しさん:2012/01/22(日) 20:05:16.19
>>75
>何人が作ろうと関係ないじゃんか
ところが関係あるんだなぁこれが。
特にRubyが嫌いでPythonに定着した人たちにとっては。
78デフォルトの名無しさん:2012/01/22(日) 20:11:01.45
>>77
もしかするとお前はスレタイも読めないのか?
本当に日本人なのか?
それ以前にアルファベット読めるのか?
ここはperlのスレだぞ?
Rubyの何かと勘違いしていないか?
外人が作ったから良いんだみたいなksなオナニーショーはRubyスレでやってろgomi
あとどこら辺に国民性が出てるのか言えるんだろ?
言ってみろよkz
まあお前は低能の肥溜めのハエ以下の蛆だからぁ
何も語れずにクソひり出して大人しく墓穴に入ってりゃあいいさ
79デフォルトの名無しさん:2012/01/22(日) 23:13:11.23
お手本になる、小さくまとまってて綺麗なPerlモジュールってCPANで言うとどれ?
玉石混交とはよく聞くけど、何が「玉」で何が「石」か判断つかない。
お勧めあったら教えて。
80デフォルトの名無しさん:2012/01/22(日) 23:44:10.02
うるさいゴミ
81デフォルトの名無しさん:2012/01/23(月) 01:07:04.73
図書館の地図の日本海に「東海シール」を貼りつける韓国人

図書館所蔵地図の日本海の上に「東海シール」を貼りつける韓国人たち

画像
http://mamorenihon.files.wordpress.com/2012/01/kankoku2.jpg

January 16, 2012
http://ameblo.jp/asuka-1020-umare/entry-11137288593.html

http://www.youtube.com/watch?feature=player_embedded&v=nmRGjO4Jj0Q

82デフォルトの名無しさん:2012/01/23(月) 17:51:18.91
ファイルを開くときの例外処理って必ずする必要があるのですか?
このようにファイルを開けなかった場合はデフォルト値にしたい場合
例外処理するとopenでプログラムが終了されて、デフォルト値にすることができないのでこのようにするしかないんですが

@default_hobby_list=("ゲーム","アニメ","PC");

open(IN,"hobby.dat");
@hobby_list = <IN>;
close(IN);

#@hobby_listが取得できなかった場合
if(@hobby_list==0){
@hobby_list = @default_hobby_list;
}
83デフォルトの名無しさん:2012/01/23(月) 18:38:24.25
例外処理って何のこと?
普通にこんなのじゃいけないの?

if (open my $f, 'filename') {
    なんか処理;
    close $f;
} else {
    デフォルト処理;
}
84デフォルトの名無しさん:2012/01/23(月) 18:50:24.48
>>82
それだと読み込んでも配列がゼロ行なら処理しちゃうよ。
それでも良いなら良いけどね。

あと、例外処理って"or die"のことか?
別にdieじゃなくても
$operror = 0;
open(IN,"hobby.dat") || $operror = 1;
とかできるぞ。
85デフォルトの名無しさん:2012/01/23(月) 19:06:52.71
例外処理は必須じゃなくてアプリケーションのポリシーによるのだけど、
open が失敗するのはファイルが存在しない場合だけじゃないので、
ファイルの存在確認をしたいだけならファイルテスト演算子を使うべきだし、
open についても die じゃなくてもせめて warn $! ぐらいはしといたほうが、いざ想定外が起こったときにも原因究明に時間かけなくて済むよ。

# >>85 - for popup
use strict;
use warnings;

my $filename = './hobby.dat';
my @default_hobby_list = ("ゲーム", "アニメ", "PC");
my @hobby_list;

if (-f $filename && -r _) {
open my $in, '<', $filename or die "cannot open: $!";
@hobby_list = <$in>;
close $in or die "cannot close: $!";
}

if (@hobby_list) {
chomp @hobby_list;
} else {
# file not found or empty
@hobby_list = @default_hobby_list;
}
86デフォルトの名無しさん:2012/01/23(月) 19:08:24.40
あ、最後のif-elseのifのほう無駄だな。最初のifに含めればいいだけだ。
87デフォルトの名無しさん:2012/01/23(月) 19:40:05.40
>>84
> open(IN,"hobby.dat") || $operror = 1;
|| の方が = より優先順位が高いので compilation error になる。
88デフォルトの名無しさん:2012/01/23(月) 21:51:24.57
行の末端から読んでソートするにはどうすればいいですか?
?かすでいいばれすうどはにるすトーソでん読らか端末の行

(例)
yahoo
apple
google
goo
banana

banana
google
apple
goo
yahoo
--

入出力は何でもいいです。
89デフォルトの名無しさん:2012/01/23(月) 21:53:35.59
宿題みたいだなー。答えたくないなー。
90デフォルトの名無しさん:2012/01/23(月) 22:15:47.71
91デフォルトの名無しさん:2012/01/24(火) 03:29:33.24
Twitterは32分で返信きてた
このスレのハゲは本当に無能ばかりだな

>>89
問題外
分からないならレスするなカス

>>90
遅い
URL貼るだけに何分かかってんだよ
92デフォルトの名無しさん:2012/01/24(火) 03:35:44.74
じゃあこんな所じゃなくてトゥイッタァーでやればよくね?
9388:2012/01/24(火) 03:37:43.23
9488:2012/01/24(火) 03:38:44.21
早い話がリモートホストの集計がしたいのですが
どうやったらいいのでしょうか?
逆順ソートすればいいのかと思ってるのですが
95デフォルトの名無しさん:2012/01/24(火) 04:52:04.82
リモートホストの集計と逆順への並べ替えの関係がよくわからんのだが
これじゃだめなのかい

while (<>) {unshift @data, $_}
96デフォルトの名無しさん:2012/01/24(火) 05:03:23.47
>>94
>>88 のままでいいなら >>90 の関数を使って

print map reverse . "\n", sort map scalar reverse, qw(
apple.com
example.jp example.net example.org
goo.ne.jp
google.com google.co.jp
namco.jp namco.co.jp
yahoo.com yahoo.co.jp
apple.com
);

TLD・ドメイン名・ホスト名を区別して揃えてくれるソートルーチンが欲しいなら
既存のアクセス解析ツールのコードをあたってもらった方が早いし、
ここでダラダラ再発明されても困る。
97デフォルトの名無しさん:2012/01/24(火) 17:38:29.94
クソスレわらた
98デフォルトの名無しさん:2012/01/24(火) 17:48:39.15
>>97
失せろゴミ
99デフォルトの名無しさん:2012/01/24(火) 17:54:44.03
↑頭悪そう、PHP厨か?w
100デフォルトの名無しさん:2012/01/24(火) 17:59:28.47
最強の言語はPHPでしょ
Perl(笑)とかw
101デフォルトの名無しさん:2012/01/24(火) 18:02:50.11
>>100
コマンドラインから実行でも<>が無いと何にもできない最強言語乙。
102デフォルトの名無しさん:2012/01/24(火) 18:04:13.29
>>100=ゴミ
103デフォルトの名無しさん:2012/01/24(火) 18:05:01.39
うるさいゴミ
104デフォルトの名無しさん:2012/01/24(火) 18:06:21.48
PHP<?笑?>
105デフォルトの名無しさん:2012/01/24(火) 19:14:07.96
PHP厨≦PHP<ゴミ
106デフォルトの名無しさん:2012/01/24(火) 22:06:37.84
use strict;使わない奴は基地害
107デフォルトの名無しさん:2012/01/24(火) 22:31:34.63
必要なときにPerl4使えない奴は単なる無能
108デフォルトの名無しさん:2012/01/24(火) 22:34:47.74
C風のスタイルしか受け入れない奴も基地外
Perlやるならnext ifぐらい理解しやがれ脳弱
109デフォルトの名無しさん:2012/01/24(火) 22:37:42.45
>>108=Cに挫折した低脳
110デフォルトの名無しさん:2012/01/24(火) 22:39:54.64
つまりstrictとかないphpが最も優れた言語。
111デフォルトの名無しさん:2012/01/24(火) 22:41:58.57
>>110
PHPが優れているのは正しいが
それはstrictがあるからだ。
112デフォルトの名無しさん:2012/01/24(火) 22:50:36.15
言語仕様が全体で一貫している言語が必ずしも優れているとは限らない
PHPはそれを教えてくれる
113デフォルトの名無しさん:2012/01/24(火) 23:19:53.30
PerlとPHPを比較する人は無能。
ついでにその人はプログラマでもない。
114デフォルトの名無しさん:2012/01/24(火) 23:26:10.67
>>113
説得力のある理由を言えなければ
お前が無能ってことでw
115デフォルトの名無しさん:2012/01/25(水) 00:04:43.29
つまりFORTHが最強ってこと?
116デフォルトの名無しさん:2012/01/25(水) 00:06:57.76
このスレに来てるだけですでに・・・
117デフォルトの名無しさん:2012/01/25(水) 01:52:31.34
ゴミは書き込むなって
118デフォルトの名無しさん:2012/01/25(水) 01:55:09.99
>>114 君がプログラマじゃないから。説得力あるだろ。
そもそもそんな理由聞いてる時点でな……
ま、学生のスレだな。
119デフォルトの名無しさん:2012/01/25(水) 02:07:33.90
要はPHPはPerlの比較対象ではないということだ。

Perl=プログラミング言語
PHP=産廃

言い方を変えれば、
カレーとうんこを比較する人は低能。
ついでにその人は料理人でもない。
120デフォルトの名無しさん:2012/01/25(水) 02:10:49.39
な。すぐ二つ並べて比べて下らないこと書きたがるだろ。
121デフォルトの名無しさん:2012/01/25(水) 02:12:31.16
php厨は失せろよ・・・
122デフォルトの名無しさん:2012/01/25(水) 02:36:33.52
>>118が説明能力なさすぎてワロタwwwwwwwww
説明できずに恥さらすだけならレスしなきゃいいのにwwwwwwwwwwwwww
123デフォルトの名無しさん:2012/01/25(水) 02:41:07.46
いちいち具体的に書くメリットなかったのよ。数年ぶりに来ただけだしね。
別に恥じゃないよ。正直どうでもいい。
ただプログラマが減ってるのは残念かな。
124デフォルトの名無しさん:2012/01/25(水) 06:02:52.46
>>109
今さら自己紹介は要らんよ
125デフォルトの名無しさん:2012/01/25(水) 09:21:43.20
>>108
if (open(IN, "abc") == 0) {
 die("なんたら");
}

とかも勘弁してほしいw
126デフォルトの名無しさん:2012/01/25(水) 10:06:30.98
嫌ならPerl使うなよゴミ
127デフォルトの名無しさん:2012/01/25(水) 10:15:09.46
>>126
Perlスタイルも理解できないお前が言うことかよ脳弱
128デフォルトの名無しさん:2012/01/25(水) 12:14:44.28
昨日から沸いてる>127みたいな基地害はなんなの?
129デフォルトの名無しさん:2012/01/25(水) 12:24:21.83
>>128
荒らしたいだけの脳弱だから放置しろ
お前みたいなヴァカが相手するから住み着くんだろ
130デフォルトの名無しさん:2012/01/25(水) 13:21:16.15
>>124
自分にとって自己紹介だから他人も自己紹介してると思ったのか。
C程度で挫折するとかかわいそう。
131デフォルトの名無しさん:2012/01/25(水) 13:45:37.69
ゆとりっていいね
132デフォルトの名無しさん:2012/01/25(水) 13:48:02.54
2chは4,5人で徒党を組まれて荒らされると打つ手無しだからな。
どうにもならんわ。
133デフォルトの名無しさん:2012/01/25(水) 13:53:28.72
仮にID出すようにしたって、何の役にも立たんしな
ここに来るような奴なら、IDなんていくらでも変え放題
134デフォルトの名無しさん:2012/01/25(水) 14:21:01.95
> C程度で挫折するとかかわいそう。
同じことを何度も言うとは、よっぽど嫌な思い出があるんだろうな
135デフォルトの名無しさん:2012/01/25(水) 14:45:19.58
たった2回で何度もとか言い出すとかよっぽどトラウマあるんじゃねw
136デフォルトの名無しさん:2012/01/25(水) 14:50:07.15
くだらないレスしてるならsageろ。
137デフォルトの名無しさん:2012/01/25(水) 15:01:43.23
>>134
荒らすなよゴミ
138デフォルトの名無しさん:2012/01/25(水) 15:14:17.14
> 荒らすなよゴミ
> 嫌ならPerl使うなよゴミ
> ゴミは書き込むなって
> PHP厨≦PHP<ゴミ
> うるさいゴミ
> >>100=ゴミ
> 失せろゴミ
> うるさいゴミ
139デフォルトの名無しさん:2012/01/25(水) 15:17:23.65
1 :デフォルトの名無しさん:2011/12/18(日) 17:23:47.01
やはりPHP書きよりPerl書きの方が頼りにされていた日立製くん所との案件で
おれはコーディング開始時期に遅れてしまったんだがちょうど書きはじめたみたいでなんとか耐えているみたいだった
おれは別派遣先にいたので急いだところがアワレにもPHP書きがくずれそうになっているっぽいのがメール会話で叫んでいた
どうやらPHP書きがたよりないらしく「はやくきて〜はやくきて〜」と泣き叫んでいるコーダーのために俺は契約解除を使って普通ならまだ付かない時間できょうきょ参戦すると
「もうついたのか!」「はやい!」「きた!Perlきた!」「メインPerl書ききた!」「これで勝つる!」と大歓迎状態だったPHPはアワレにもコーダーの役目を果たせず泣いていた近くですばやくPerlを書いてコーディングした
PHP書きから裏メールで「勝ったと思うなよ・・・」ときたが開発メンバーがどっちの見方だかは一瞬でわからないみたいだった
「もう勝負ついてるから」というと黙ったので日立プロパーのJava書きの後ろに回り、モジュールのテストをして何週間かしてたらサーバーサイドのコーディングは終わった
「Perl書きのおかげだ」「助かった、終わったと思ったよ」とPHP書きを行き帰らせるのも忘れてメンバーがおれのまわりに集まってきた忘れられてるPHP書きがかわいそうだった
普通なら裏メールのことで無視する人がぜいいんだろうがおれは無視できなかったみんなとよrこびほめられたかったので打ち上げ飲み回に誘ってやったらそうとう自分の裏メールが恥ずかしかったのか自社に帰って行った
140デフォルトの名無しさん:2012/01/25(水) 15:31:26.60
何かの言語が使えるのにそれ以外の
言語で躓づくとか普通ならあんまり無いけどな・・・
141デフォルトの名無しさん:2012/01/25(水) 15:41:38.78
こんにちは。Perl初心者です。
下記は、入門書によくあるカウンターのお決まりの一文らしいのですが、

open(DAT, "+< $datfile");
flock(DAT, 2);

$data = <DAT> +1;


<DAT>の意味が理解出来ません。
<>の意味はなんですか? なんで<>を付けるのか分かりません。
本には、その事は一切スルーされているのですが、
何故HTMLでも無いのに<>で囲う必要があるのかが、分かりません。

ご教授宜しくお願いします。
142デフォルトの名無しさん:2012/01/25(水) 15:50:10.01
>>141
>ご教授宜しく
意味不明。
日本語もまともに使えない池沼がプログラム?
143デフォルトの名無しさん:2012/01/25(水) 15:56:07.35
初心者って付ければ免罪符になると思ってるヴァカは帰ってね
144デフォルトの名無しさん:2012/01/25(水) 16:06:10.50
誰か情報乞食の>141に教えてやれよ
145デフォルトの名無しさん:2012/01/25(水) 16:10:30.01
146デフォルトの名無しさん:2012/01/25(水) 16:25:23.18
そんなことも自分で調べられない>>141は
この高度情報化社会には不要
147デフォルトの名無しさん:2012/01/25(水) 17:02:07.65
春厨かな
148デフォルトの名無しさん:2012/01/25(水) 17:07:02.52
>>142
「質問に答えるスキルはないので、取りあえずそこを突っ込んでみました」
ってかw
149デフォルトの名無しさん:2012/01/25(水) 17:15:35.49
これも同じ春厨

76 :デフォルトの名無しさん :2012/01/22(日) 20:00:47.37
突っ込むようなところじゃないのに突っ込んでファビョってるヴァカは可哀想としか言いようがない

129 :デフォルトの名無しさん :sage :2012/01/25(水) 12:24:21.83
荒らしたいだけの脳弱だから放置しろ
お前みたいなヴァカが相手するから住み着くんだろ

143 :デフォルトの名無しさん :sage :2012/01/25(水) 15:56:07.35
初心者って付ければ免罪符になると思ってるヴァカは帰ってね
150デフォルトの名無しさん:2012/01/25(水) 17:22:13.69
可哀想な奴の多いすれ
151デフォルトの名無しさん:2012/01/25(水) 17:23:10.88
>>147=ニート
152デフォルトの名無しさん:2012/01/25(水) 17:31:49.05
ニートじゃねぇよ
一般企業は5時に終業だって知ってる?
153デフォルトの名無しさん:2012/01/25(水) 17:33:59.02
※※※※お知らせ※※※※
必要な情報も出たので
叩かれてキレた141が暴れております
154デフォルトの名無しさん:2012/01/25(水) 17:37:31.46
>>152
まともな企業なら、就業時間外だろうが自分の携帯からだろうが
会社で2ch禁止 って知ってる?
155デフォルトの名無しさん:2012/01/25(水) 17:39:56.06
>>153
本当にゴミはゴミみたいな書き込みしかできないんだな。
156デフォルトの名無しさん:2012/01/25(水) 17:40:52.04
今日は大繁盛だな。
157デフォルトの名無しさん:2012/01/25(水) 17:41:38.98
17:02だからもう会社から出てるかもしれなくね?
158デフォルトの名無しさん:2012/01/25(水) 17:45:19.73
17時終業だからって17時に帰れる会社なんてあるわけないだろwww
普通は終電間際にならないと帰れないのが普通wwww
159デフォルトの名無しさん:2012/01/25(水) 17:46:40.65
うちは2chでもTwitterでも短時間ならおkって言われてる
160デフォルトの名無しさん:2012/01/25(水) 18:21:59.48
>>158
日本語もままらないあわれな社畜
161デフォルトの名無しさん:2012/01/25(水) 18:34:03.05
ニコニコニュース+α 「韓国『金正日萌え』ツイート逮捕事件」
http://live.nicovideo.jp/watch/lv78963873

【会場のご案内】
2012/01/26(木) 開場:20:50 開演:21:00

反国家的ツイートにご用心?!
この事件から見える韓国社会の姿とは?

23日に配信されたニコニコニュースの記事が、
ネット上で大きな反響を呼んでいます。

その記事とは、
韓国で「金正日萌え」とツイートした24歳のパク・ジョングンさんが、
同国の国家保安法違反で逮捕されたことを報じたもの。

コメントは2000件以上、まとめサイトにも多数転載されました。
記事:『韓国で「金正日萌え」とツイートした青年が逮捕される』(2012年1月23日)
今回、ニコニコ生放送では、逮捕されたパクさんの友人で、
立教大学の留学生でもあるキム・ソンハさんに詳しくお話を伺います。キムさんは、
国家保安法など韓国の社会システムに関心があり、研究・執筆活動をしています。
また、パクさんを自身のウェブマガジンの連載で逮捕前から取り上げるなど、
今もっともパクさんを知る人物でもあります。

国家保安法とはどういう法律なのか?
韓国ではどう受け止められているのか?
イ・ミョンバク政権が韓国の若者に不人気な理由とは?

韓国で沸き起こるデモの話や韓国社会の問題点について、
キムさんというひとりの若者の視点から語ってもらいます。
聞き手は、数々の公安事件や経済事件の取材に携わり、
元共同通信社記者でソウル特派員も務めたジャーナリストの青木理氏。
162デフォルトの名無しさん:2012/01/25(水) 18:40:02.43
「たった80人で"欧州でも大人気"?」K-POPのブーム捏造に韓国本土からも批判噴出中

またぞろ、韓国メディアによるK-POPブームのゴリ押しが露見した。
韓国が欧州の若者1,208人を対象に行った「韓流および国家ブランド調査」で、韓国と聞いて思い浮かぶイメージの2位が「K-POP」だったというのだ。
この結果にネット掲示板などでは「日本でも作られた人気なのに、欧州で人気なんかあるはずがない。」などとブーイングが殺到している。

「実は、このデモも韓国側のヤラセ説が根強いんです。デモの様子が動画サイトのYouTubeにアップされているのですが、
これを見ると韓国人スタッフらが集まった現地の少数のファンたちにデモの動きを指示していることが分かります。
実際、パリやロンドンの大手CDショップに行ってもK-POPアーティストのCDなんて置いていない」
(韓国のエンタメ事情に詳しい音楽ライター)
http://www.cyzo.com/2012/01/post_9671.html
163デフォルトの名無しさん:2012/01/25(水) 19:34:39.29
Kポップなんか流行るわけないだろ
俺の周りには聴いてる奴一人もいないぞ
164デフォルトの名無しさん:2012/01/25(水) 20:03:11.74
俺の周りには     一人もいないぞ
165デフォルトの名無しさん:2012/01/25(水) 20:14:16.54
>>156
ニートの人が住み着いたんだよ。
166デフォルトの名無しさん:2012/01/25(水) 21:06:39.77
なんでネトウヨがコピペしてんだ
クソスレだけにしとけって
167デフォルトの名無しさん:2012/01/25(水) 22:14:31.38
>>145神様

返事が遅れて申し訳ありません。”○┐ 
調べるのに相当時間が掛かりましたが、本当にありがとうございました。
そのHPのリンク先に、私が求めていた答えがズバリありました!

<FILEHANDLE> は readline(*FILEHANDLE) とも書けます。

なるほど・・・前者の方が短くてスマートな命令文ですね。
しかし、初めてPerlを始めようとする私には不思議なタグに感じられて困惑してました。
的確な御指導ありがとうございました。

168デフォルトの名無しさん:2012/01/25(水) 22:26:27.20
低能ほど長文を残していく良い例
初めてとか感じられたとか、ここはいつからお前の感想を書く場所になったんだ?
169デフォルトの名無しさん:2012/01/25(水) 22:43:44.10
質問するだけして無言で去るよりはマシ
170デフォルトの名無しさん:2012/01/25(水) 22:54:39.44
>>167
まず、適当な入門書を通読しろよ。

んな、英語で言えば「is」って何ですか?みたいなレベルのことがいちいち訳分からん状態じゃ
あまりに非効率だ。
171デフォルトの名無しさん:2012/01/25(水) 22:54:56.80
質問の仕方からして根本的に頭悪いんだから長文くらい許してやれ。
172デフォルトの名無しさん:2012/01/25(水) 22:58:21.97
>>170
それができない程ゴミだからこのスレできいてんだろw
回答者のことをおだてればパシられてくれる
人力検索くらいにしか思ってないぞww
そうじゃなきゃURL一つ貼った奴に
「神様」とかおちょくった呼び方しないってwww
173デフォルトの名無しさん:2012/01/25(水) 23:06:10.14
>>170
学習姿勢のない池沼には何言っても無駄。
174デフォルトの名無しさん:2012/01/25(水) 23:14:31.92
知恵遅れの小学生を捕まえて、いい大人がよってたかってフルボッコ

恥ずかしくないのかね

明らかにおかしいんだからスルーすればいいのに
175デフォルトの名無しさん:2012/01/25(水) 23:57:39.57
知恵遅れの小学生をいじめるのはたいがい小学生だろう
176デフォルトの名無しさん:2012/01/26(木) 08:36:29.15
ここよりWebProg板の質問スレのほうが親切
177デフォルトの名無しさん:2012/01/26(木) 08:38:30.24
しかしWebProg板で高級シェルスクリプトの話は出来んのよね
178デフォルトの名無しさん:2012/01/26(木) 10:20:36.14
WebProgは馬鹿にこき使われるのが好きなMが多いからな
179デフォルトの名無しさん:2012/01/26(木) 10:52:47.05
AWKで言うFNRってどうすればいい?
NRは$.があるけど…
180デフォルトの名無しさん:2012/01/26(木) 13:30:41.42
ステマ
181デフォルトの名無しさん:2012/01/26(木) 14:16:46.91
>>179
各ファイルの終端はeofで検出できるから、その都度$.=0する。
同時にNRも必要なら、変数要るけど。

http://perldoc.jp/func/eof
182デフォルトの名無しさん:2012/01/26(木) 18:18:08.84
>>181
なるほど…
・PerlでEOFを意識したことがなかった
・$.を書き換えるという発想がなかった
ので、ちょっとビックリした。

他にはeof検出時の$.を保存して
差分を出すとか色々やり方ありそうだ、thx
183デフォルトの名無しさん:2012/01/26(木) 18:49:56.47
>>181のURLはアフィ目的
184デフォルトの名無しさん:2012/01/26(木) 18:53:36.68
うるさいゴミ
185デフォルトの名無しさん:2012/01/26(木) 21:27:03.50
橋下市長 君が代起立斉唱は思想信条の自由ではない

公務員改革に精通する木下敏之氏(前佐賀市長)が指摘する。
「口先で丸めこむだけでは通用しなくなる。橋下氏は“役人は敵”という原理主義者ではない。
自分のことを好きでも嫌いでも構わないが、自分の政策を実現できる働く役人が良い役人と考える
プラグマティスト(実用主義者)なのでしょう」

君が代起立斉唱すべきか否かというのは思想信条の自由に関する問題ではなく、
組織として決めたことは守りましょうという組織論なのだ。
http://www.news-postseven.com/archives/20120125_82321.html
186デフォルトの名無しさん:2012/01/26(木) 22:26:26.51
誰かdankogai黙らせてください
いつまでjcode.pm振りかざすんですか
187デフォルトの名無しさん:2012/01/26(木) 22:45:06.58
dankogaiの作った
Perl標準のEncodeモジュールを
使いましょうねw
188デフォルトの名無しさん:2012/01/26(木) 22:45:18.55
>>186
お前が黙れよ池沼。
189デフォルトの名無しさん:2012/01/26(木) 23:34:33.31
断固、害。
190デフォルトの名無しさん:2012/01/27(金) 00:05:26.04
くそすれ
191デフォルトの名無しさん:2012/01/27(金) 00:27:47.78
use strict;
use Encode;
192デフォルトの名無しさん:2012/01/27(金) 01:54:01.16
(アマチュア、または初心者の場合)

use strict;
use Jcode;
193デフォルトの名無しさん:2012/01/27(金) 01:57:07.39
(アフォの場合)

use stricts ;
use warning ;
194デフォルトの名無しさん:2012/01/27(金) 03:46:17.41
へぇ
195デフォルトの名無しさん:2012/01/27(金) 04:40:20.23
(俺の場合)

use struct;



「あっ」
196デフォルトの名無しさん:2012/01/27(金) 11:12:08.06
【ひこちん】捻じ曲げるマスコミとだまされる俺
http://www.nicovideo.jp/watch/sm16798880

フジ偏向・花王デモ四国 前半
http://www.nicovideo.jp/watch/sm16798520

フジ偏向・花王デモ四国 街宣
http://www.nicovideo.jp/watch/sm16798788

日本の政治家は日本国民の為にこそ働けよ!
http://www.nicovideo.jp/watch/sm16797505

野田首相側、111万円受領 暴力団に便宜疑いの社長側献金
http://www.nicovideo.jp/watch/sm16795979

【今週の御皇室】両陛下の御公務と、天皇陛下の御言葉[桜H24/1/26]
http://www.nicovideo.jp/watch/so16795333

【守るぞ尖閣】国会議員現地視察・中山市長電話インタビュー[桜H24/1/26]
http://www.nicovideo.jp/watch/so16795330

【国民愚弄】野田首相のブーメランと読売新聞の増税扇動[桜H24/1/26]
http://www.nicovideo.jp/watch/so16795315

【被災地の声】碇川町長と菅野村長が安倍元首相と会談[桜H24/1/26]
http://www.nicovideo.jp/watch/so16795309

【柚原正敬】台湾総統選・立法院選から見る日台関係[桜H24/1/25]
http://www.nicovideo.jp/watch/so16793360
197デフォルトの名無しさん:2012/01/27(金) 11:16:29.42
Perlはレガシー
198デフォルトの名無しさん:2012/01/27(金) 11:43:30.80
>>197
さんざんてめーでレガシーな書き方しといてその開き直りか
199デフォルトの名無しさん:2012/01/27(金) 15:22:20.21
(お前の場合)

use homo;



「アッー!」
200デフォルトの名無しさん:2012/01/27(金) 15:29:40.28
>>198の反応のしかたもレガシー。
201デフォルトの名無しさん:2012/01/27(金) 20:58:05.36
破廉恥
202デフォルトの名無しさん:2012/01/27(金) 23:42:28.14
モダンがモダンでないように、レガシーもレガシーじゃないんだよね
言葉は変化するというけれどこれはただの誤用だよね
意図的かもしれないからその手には乗らないけどね
203デフォルトの名無しさん:2012/01/28(土) 04:26:30.31
>>202=低脳
204デフォルトの名無しさん:2012/01/28(土) 04:33:31.84
>>203=ゴミ。
205デフォルトの名無しさん:2012/01/28(土) 06:13:29.65
>>205=ハゲ
206デフォルトの名無しさん:2012/01/28(土) 06:31:04.60
>>206=俺
207デフォルトの名無しさん:2012/01/28(土) 10:53:37.80
>>206=通算50206番目の書き込み
208デフォルトの名無しさん:2012/01/28(土) 11:17:06.33
引数の0と何も引数がないのをうまく区別する方法はないでしょうか?
例えば、program 0なら引数の0を使って処理をしてprogramだけだとエラーを表示するようにしたいのです。
if(!ARGV[0])だと引数に0を入れてもエラー処理に行っちゃうので・・
209デフォルトの名無しさん:2012/01/28(土) 11:20:15.35
どんな言語でもそうだが、
if ( ここ ) {}
に入れるものは、bool型かオブジェクト(参照型)だけ。
数値型や文字型なんかを入れたらいかん。

perlで言えば、オブジェクトでないのなら
必ず、”ここ” で比較しろ。
210デフォルトの名無しさん:2012/01/28(土) 11:21:20.63
つまりどういうことなんですか!
211デフォルトの名無しさん:2012/01/28(土) 11:22:16.34
defined
212デフォルトの名無しさん:2012/01/28(土) 11:34:32.88
if (@ARGV)
213デフォルトの名無しさん:2012/01/28(土) 11:35:43.56
if(%HASH)

なんでこれやったらおかしい動きするわけ?
214デフォルトの名無しさん:2012/01/28(土) 11:41:20.81
>>213
馬鹿には理解できないから諦めろ
215デフォルトの名無しさん:2012/01/28(土) 11:42:44.70
え?空のハッシュなんだから
空の配列と同じく偽になるべきでしょう?
216デフォルトの名無しさん:2012/01/28(土) 11:44:09.41
>>214
お前には聞いてないから黙っとけやゴミ。
217デフォルトの名無しさん:2012/01/28(土) 11:46:31.13
>214←はい、今日の歩く恥さらし1匹目はいりましたー
218デフォルトの名無しさん:2012/01/28(土) 11:51:05.62
煽ってる>>214も頭おかしいけど、

ム板で挙動を表現するのに

>おかしい動き

とか言っちゃう池沼もスルーするべき。
219デフォルトの名無しさん:2012/01/28(土) 11:55:21.57
>>216
公開掲示板でそれはおかしい
相手を選択したいならコミュニティやMLで質問するべき
220デフォルトの名無しさん:2012/01/28(土) 11:57:29.61
>>213
おかしい動きwwwwしてるのはお前の頭の中だろwwwwwwwwww
221デフォルトの名無しさん:2012/01/28(土) 13:14:08.64
>>213 >>215
http://perldoc.jp/docs/perl/5.10.0/perldata.pod#Scalar32values
> ハッシュをスカラコンテキストで評価した場合、ハッシュが空のときにだけ偽が返されます。
> キー/値のペアが登録されていれば、真を返します。

> (注: 5.12.x までの perl では) tie したハッシュがスカラコンテキストで評価されると、
> (略) 致命的エラーとなります。

my %hash; print '1:', %hash ? 'true' : 'false', "\n"; # false
%hash = (); print '2:', %hash ? 'true' : 'false', "\n"; # false
# true。undef はキーにも値にもなり得る
$hash{ undef() } = undef; print '3:', %hash ? 'true' : 'false', "\n";
# 2。関数である事を明示していないので、文字列 'undef' と解釈されている
$hash{ undef } = undef; print '4:', scalar keys %hash, "\n";
# 2。undef を文字列コンテキストで評価すると空文字列なので 3: と重複
$hash{''} = undef; print '5:', scalar keys %hash, "\n";
# 3。空文字列と '0' は別
$hash{'0'} = undef; print '6:', scalar keys %hash, "\n";
# 3。数値の 0 を文字列コンテキストで評価すると '0'
$hash{ 1 - 1 } = undef; print '7:', scalar keys %hash, "\n";
print scalar %hash, "\n"; # '2/8' のような文字列
%hash = (); print scalar %hash, "\n"; # '0'
222デフォルトの名無しさん:2012/01/28(土) 13:22:49.29
javascriptの比較演算の茨っぷりに比べればまだ……
223デフォルトの名無しさん:2012/01/28(土) 14:26:34.59
こういう下を見て我慢するタイプのヴァカって成長しないよね
224デフォルトの名無しさん:2012/01/28(土) 15:07:51.17
こういう他人を見下してばかりいる池沼も成長しないよね。
225デフォルトの名無しさん:2012/01/28(土) 15:12:08.08
下等動物には、そもそも成長なんて概念はないからな。
死ぬまでこのままだよw
226デフォルトの名無しさん:2012/01/28(土) 15:14:19.82
加藤茶生物
227デフォルトの名無しさん:2012/01/28(土) 16:18:01.13
>>208
>>212 でOK

if (@array) は配列の要素数を見てるので、0が入ってれば要素数は1なので、真になる。

配列はスカラーコンテキストで評価されると、その要素数を返す。
ifの条件部分はスカラーコンテキスト。
分かりやすくscalarと明示的に書いてもいい。 if (scalar @array)

228デフォルトの名無しさん:2012/01/28(土) 16:19:02.25
そういえばfor以外にリストコンテキストって何があったっけ。
229デフォルトの名無しさん:2012/01/28(土) 16:30:24.45
リストコンテキストとかスカラコンテキストってのは
Perの言語仕様の失敗した所の一つだよな。
230デフォルトの名無しさん:2012/01/28(土) 16:40:19.75
お前って人生失敗した馬鹿の一人だよな
231デフォルトの名無しさん:2012/01/28(土) 16:41:58.85
うん
232デフォルトの名無しさん:2012/01/28(土) 17:33:10.32
>>239
習得の障害になる。だが、習得するとそのご利益に感動する。
233デフォルトの名無しさん:2012/01/28(土) 17:40:27.80

×>>239
>>229
234デフォルトの名無しさん:2012/01/28(土) 18:14:12.32
>>232
例えばどんなときに感動した?
235デフォルトの名無しさん:2012/01/28(土) 18:16:44.05
君みたいに習得できなかった脳弱に遭遇したときかな。
236デフォルトの名無しさん:2012/01/28(土) 18:19:36.21
答えられないなら書くなよw
237デフォルトの名無しさん:2012/01/28(土) 18:20:37.28
>>235=糞
238デフォルトの名無しさん:2012/01/28(土) 18:21:25.24
>>236
よう脳弱!
239デフォルトの名無しさん:2012/01/28(土) 18:32:34.17
>>229
Perってなんだよ
パーはてめーの頭だろ
240デフォルトの名無しさん:2012/01/28(土) 21:38:08.27
スカラコンテキストとかリストコンテキストは
最初良くわからなかったな。

でも、wantarrayみたとたん一瞬で理解した。
ただの関数の引数の一種にすぎないんだって。

俺にとってはこう見えてる。
foo(123) → foo(FLAG_ARRAY, 123)
scalar foo(123) → foo(FLAG_SCALA, 123)

foo(flag, value) {
 if(flag == FLAG_ARRAY) { // wantarray
  ・・・
 } else {
  ・・・
 }
}

あとは読み出し元のコードの書き方で、
フラグが適当に変わるだけ。
241デフォルトの名無しさん:2012/01/28(土) 21:44:27.65
void contextのこと忘れないであげて
242デフォルトの名無しさん:2012/01/28(土) 21:51:39.01
PerがPerlでないように、PerlもPerじゃないんだよね
言葉は変化するというけれどこれはただのtypoだよね
意図的かもしれないからその手には乗らないけどね
243デフォルトの名無しさん:2012/01/28(土) 22:49:00.42
【中国BBS】2030年に韓国が日本を抜く? 反対意見が多数

中国大手検索サイト百度の掲示板に、「2030年に韓国のGDPは日本を追い越すって本当?」というスレッドが立てられた。
これに対して反対意見が多数寄せられている。

● スレ主:八戒窘6
  アジア開発銀行のデータによれば、2030年に韓国のGDPは日本を追い越すらしい。

● せんとう
  どんな予測も多少なりとも正確ではない所があるが、今回の話はあり得なさ過ぎる。

● satay醤
  本当にデタラメだな。アジア開発銀行によるレポートだって?じゃあバンク・オブ・アメリカや欧州の銀行の結論はどうなのよ?

● 佚名野菜地
  アジア開発銀行ってのは、韓国人が開いているのか?

● Joseph19969
  俺の妄想では、2100年日本人の1人当たりのGDPは46万ドル、韓国は8万だな!

● o落葉不知秋o
  その頃までに韓国という国が残っているかどうかも分からないぞ。

● 梨花陰凉
  死んでも信じない。

● MakiのLove
  なんか最近、韓国のニュースが多くね?
http://news.searchina.ne.jp/disp.cgi?y=2012&d=0128&f=national_0128_091.shtml
244デフォルトの名無しさん:2012/01/29(日) 00:09:08.57
変数XをXのまま計算して答えを出す方法ってあるでしょうか?
例えば、Y=(X-4)^5という式があったとして代入すれば答えを出すのは簡単なんですが、
Y=X^5+A*X^4+B*X^3・・・+E(A-Eは数字が入ります)
というような形の式を得たいのです。
245デフォルトの名無しさん:2012/01/29(日) 00:10:42.68
246デフォルトの名無しさん:2012/01/29(日) 00:23:13.06
>>244
数式処理でググると色々出てくるんじゃね
247デフォルトの名無しさん:2012/01/29(日) 00:26:19.45
>>244
?、書いてあるのでいいじゃん、と思うのだが、
よくわからないので、自分で書いた動かないコードを貼るのがいい
248デフォルトの名無しさん:2012/01/29(日) 00:53:44.57
>>244
http://www.wolframalpha.com/input/?i=Y%3D(X-4)^5

Perlを始めとした多くのプログラム言語は数を直接計算する為の道具です。
数式を計算するようデザインされたものではありません。

一般的なプログラムで解を得るには:
与えられる数式を数の組で定義し、
YをXの多項式で表現する方法を定義し、
数式を多項式に展開するロジックを定義しなければなりません。

ロジック無しでは簡単な因数分解すら解くことはできません。
上のリンクはかつてMathematicaという名前で販売された高価で複雑で膨大な
数式処理ソフトウェアをウェブサービスに当てはめたようなものです。

"show steps"ボタンを押すと、愚直なプログラム言語が
如何に数式を計算するかを垣間見ることができると思います。
249デフォルトの名無しさん:2012/01/29(日) 09:30:46.02
そんなことも知らないのか
250デフォルトの名無しさん:2012/01/29(日) 11:01:32.23
>>244
> 変数XをXのまま計算して答えを出す方法ってあるでしょうか?
あります
中等学校で数学という教科でその方法を習います
251デフォルトの名無しさん:2012/01/29(日) 11:46:43.07
>>250
コンピュータは中学生以下ということですか?
252デフォルトの名無しさん:2012/01/29(日) 11:49:29.79
ああ、>>250 って1行目の日本語がおかしいのか。
最後の文が本当で、式変換したいってこと?
253252:2012/01/29(日) 11:50:09.01
まちがえた、.>>250じゃなくて、>>244
254デフォルトの名無しさん:2012/01/29(日) 11:58:30.22
でも数式処理とかいうfuckでshitな作業は
lisp使えば楽に出来そうな予感はする

perlにゃ向いていない気もする
ゴリ押しすりゃ出来そうだけど
クソの塊みたいなスパゲチーコードになるはずだ
255デフォルトの名無しさん:2012/01/29(日) 13:08:30.14
ttp://www.ichinoseki.ac.jp/gene/mathnavi/link.html
ttp://ja.wikipedia.org/wiki/数式処理システム

HPの電卓でもできたような気がする。
今ならiなんとかのアプリに登録されてそう。
256デフォルトの名無しさん:2012/01/29(日) 13:33:01.54
数学の問題を読む時点で国語の能力が必要となる罠。
257デフォルトの名無しさん:2012/01/29(日) 14:09:49.24
>>251
ヒント:道具は使う人しだい
258デフォルトの名無しさん:2012/01/29(日) 14:42:34.60
まあ俺ぐらいの年代だとスパゲッティーは辞書を引かないと分かんない
から、これからはナウくパスタスクリプトって言ってもらいたいね。
259デフォルトの名無しさん:2012/01/29(日) 15:00:40.56
>>258
子供並みの文章力では
煽りにすらならんわ
260デフォルトの名無しさん:2012/01/29(日) 15:43:16.11
第一ヒント:印刷に関係がある
261デフォルトの名無しさん:2012/01/29(日) 16:05:55.11
第二ヒント:逆ポーランド記法(LISPとは違うのだよ、LISPとは!)
262デフォルトの名無しさん:2012/01/29(日) 16:10:33.87
答え:JavaScript
263252:2012/01/29(日) 16:47:40.97
ああ、俺がアホだった。 >>242の日本語は特に間違ってないな。
264デフォルトの名無しさん:2012/01/29(日) 17:00:20.73
>>244が欲しいのは式の展開じゃないの?
>>248が答え(expanded form)をだしてるけれど。
http://reference.wolfram.com/mathematica/tutorial/TransformingAlgebraicExpressions.html
265252:2012/01/29(日) 17:01:36.83
うぅ、、すまん、>>244 だ。
途中式が欲しいなんて思ったことないから、わかんないや。
いちおう、CPANでMath関係を探してみてるけど。
266232:2012/01/29(日) 18:19:56.11
>>234
たとえば、

$str = <$fh>;
@str = <$fh>;

の両方が成立すること。
プログラムをしていてストレスを感じることは普段と違って余計なことを
意識したり、余計なことを書かねばいけないことなんだ。
普段、人間相手だと細かく言わなくとも通じるように、状況に応じて対応を
変えるというのは人間には自然なんだと思う。だから、状況に暗黙に対応してくれるほうが
明示的じゃないと対応しないほうより楽で、Perlっていいなとおもってしまう。
ただし、これは、CとかVBとかしか知らない経験の少ないアマチュアプログラマの意見だ。
場違いだったかも。
267デフォルトの名無しさん:2012/01/29(日) 20:12:55.81
>>266
コード見て何をしたいのか全くわからんねw

上の方、ファイルの行数を取得するのか?
それとも一行目を取得するのか?
そんなのいちいち覚えてないといけないだろ?


今、お前は心の中でどういう機能か説明しただろう?

コードってのは読むもの。
普通に読んだら、それが動きを表すほうがいい。
ファイルのgetLineCount
ファイルからgetLine
ファイルからgetAll

ファイルから何をしたいのか、
説明しなくても分かるだろう?

説明が必要なものと、説明が不要なもの。不要な方が良い。
268デフォルトの名無しさん:2012/01/29(日) 21:02:35.91
多分そういう徹頭徹尾膨大な英単語羅列で言語が出来てたら
ここまではやんなかったと思う

ごくごく単純に何かのテキスト開いて処理するだけの豪華なフィルタが欲しい、
そのためにあるようなモンだから
ファイルのオープンとかいう初歩の初歩ののっけからウンザリするほどの長さがあったら、
気楽に使うこたぁーーできない

コードの表音的な部分だけじゃあなくて表意的な部分、シジルとか。
もっと言えばコードの意味じゃなくて形のようなものも読んでる

他の言語はやたらと英単語が多くて、最近のperlもその傾向があるけど、
英単語がやたらと多いと説明読むだけでめんどいこともある
269デフォルトの名無しさん:2012/01/29(日) 21:02:41.95
BASICのLET「呼ばれた気がしたが気のせいだった」
270デフォルトの名無しさん:2012/01/29(日) 21:34:11.40
はいはい、COBOLER、乙。
271デフォルトの名無しさん:2012/01/29(日) 21:34:51.92
> $str = <$fh>;
> @str = <$fh>;
これって演算子オーバーロードと同じようなものだろ?

str = fh->$()
str = fh->@()
とくれば

str = $(fh) 
str = @(fh)
こう置き換えられ、

str = $fh
str = @fh
こうなるのが自然な形

本来はこうあるべきだが、残念なことにPerlはオブジェクト指向じゃなかった。
引数の型で呼び出すメソッドが決められなかったので
代入先の型で呼び出すメソッド側で判断できるようにした。
272デフォルトの名無しさん:2012/01/29(日) 21:48:10.26
はいはい、オブジェクトオタ、乙。
273デフォルトの名無しさん:2012/01/29(日) 21:55:31.86
できれば、反論が欲しい所w
ま、無理か。
274デフォルトの名無しさん:2012/01/29(日) 21:59:39.73
特に反論する内容はない。
275デフォルトの名無しさん:2012/01/29(日) 22:47:45.25
>>267
ある程度覚えるのはしょうがない。程度問題。
数式を全部文字列であらわされたらしんどい。


良く使う機能だからこそ、記号化されてる。getLineとか一般的な機能にそんな長い名前は要らない。
276デフォルトの名無しさん:2012/01/29(日) 23:14:40.47
javadriveからのコピペ

File file = new File("c:\\tmp\\test.txt");
FileReader filereader = new FileReader(file);

int ch;
while((ch=filereader.read() ) != -1){
  System.out.print((char)ch);
  ch = filereader.read();
}


perlでの例

open my $fh , "<", "test.txt" or die $!;
while (my $line = <$fh>){
  print $line ;
}

open my $fh , "<", "test.txt" or die $!;
while (<$fh>){
  print;
}
277デフォルトの名無しさん:2012/01/29(日) 23:18:06.49
ついでにとほほからも
一行読み込み Java

FileReader in = new FileReader("file.txt");
BufferedReader br = new BufferedReader(in);

String line;
while ((line = br.readLine()) != null) {
  System.out.println(line);
}

br.close();
in.close();
278デフォルトの名無しさん:2012/01/29(日) 23:26:02.86
シングルクォートを使った場合のパス処理がよく分かりません。

my $abc = '$abc';
my $str = '$abc';
my $expr = '$abc';

print $str =~ /$expr/;

これが偽になるのはなんでですか?
279278:2012/01/29(日) 23:38:27.90
あ、分かった。
すみません、おおボケかましてましたわw
280デフォルトの名無しさん:2012/01/29(日) 23:48:44.54
>>267
getlineでもgetlinesでも好きに書けばいいじゃーん。
use 5.12.0;
use IO::File;

open(my $fh, '<', \"foo\nbar\nbaz\nqux") or die $!;
while(defined(my $line = $fh->getline)){
print $line;
}
$fh->close;
281デフォルトの名無しさん:2012/01/30(月) 01:17:54.92
Perlの元来の用途はテキストの加工なワケで、そのために
文字列の一行入力なんていうあまりにも頻繁に使うであろう操作は
いちいち命令なんて使わずに専用の演算子でいいじゃない、となったんだろな
282デフォルトの名無しさん:2012/01/30(月) 01:31:42.08
だろうね。

でも、アプリ(ウェブアプリ含む)だと
テキスト入力ってあまり行わないんだよな。
283デフォルトの名無しさん:2012/01/30(月) 10:54:50.13
ARGVについて詳細を調べたいのですが、どのドキュメントを引けば良いのかが分かりません
perlvarでは無いようですし…どこにあるのでしょうか?
284デフォルトの名無しさん:2012/01/30(月) 10:55:51.79
ごめんなさいありました…
285デフォルトの名無しさん:2012/01/30(月) 23:15:38.93
ここくる前に体系的な本読んだほうがいいぞ
286デフォルトの名無しさん:2012/01/30(月) 23:27:07.96
と言われてどこから入手したのかラクダ本(第1版)やらリャマ本(第1版)読んで勉強するのが
このスレのいつものパターン
287デフォルトの名無しさん:2012/01/30(月) 23:32:39.37
んなもん古本で買えば良いだろ、と思ったが、
アマゾンのマケプレだと現行版は中古で買う気が失せるほど高いんだね。
初版は1円だけど。
288デフォルトの名無しさん:2012/01/30(月) 23:42:34.64
ラクダ本は一番新しい第3版が2002年出版、5.6準拠だぞ
(英語版は2月に第4版出るけど)
今勉強するとしたらWebに限る
289デフォルトの名無しさん:2012/01/30(月) 23:47:51.17
>>288
>今勉強するとしたらWebに限る

んで「<>ってなんですか?」とか「ARGVって何ですか」とか「コンテクストって何ですか?」と
匿名掲示板で質問するのか?
ふざけんじゃねーよ。
290デフォルトの名無しさん:2012/01/30(月) 23:56:26.47
>>289
じゃあラクダ本読んでるやつはそんな質問しないってか?
291デフォルトの名無しさん:2012/01/30(月) 23:59:52.59
おこりんぼ
292デフォルトの名無しさん:2012/01/31(火) 00:08:59.00
今から勉強するならPythonとかだろ…
293デフォルトの名無しさん:2012/01/31(火) 00:20:17.95
>>292
なんで?
294デフォルトの名無しさん:2012/01/31(火) 00:20:56.23
初めてのPerl 第3版の古本を買うか、図書館で借りればいいよ。
295デフォルトの名無しさん:2012/01/31(火) 00:27:56.15
>>293
Perlはバッドノウハウの塊だし
296デフォルトの名無しさん:2012/01/31(火) 00:33:53.49
>>295
そうだな。Pythonを使えば全てのバッドノウハウから解放される。
それどころかバッドノウハウに頼らざるを得なくなる場面が根本的に発生しなくなる。
297デフォルトの名無しさん:2012/01/31(火) 00:41:12.14
でもPythonでワンライナー書きたくないな〜
298デフォルトの名無しさん:2012/01/31(火) 00:55:15.22
u"これはUnicode文字列です"

これがバッドノウハウじゃなかったら一体バッドノウハウはなんなんだよwwwwwwwwwwwwwww
pythonはクソと汚物とアホの塊だろwwwwwwwwwwwwwwwwww

uだよu!!!!!!!!!!!!!!
バカアホクズ三拍子そろった BAD NOWHOW だよwwwwwwwwwwwwwwww
wwwwwwwwwww
wwwwwwwwwwwwwwwwwwww
wwwwwwww

299デフォルトの名無しさん:2012/01/31(火) 01:04:00.44
perl -pe's/w//g'
300デフォルトの名無しさん:2012/01/31(火) 04:22:42.35
300ゲト
301デフォルトの名無しさん:2012/01/31(火) 04:46:57.94
それでもゴミPHPよりははるかにマシ
302デフォルトの名無しさん:2012/01/31(火) 08:08:45.72
0xFF これは16進数です

と何が違うんだい?
303デフォルトの名無しさん:2012/01/31(火) 10:46:32.08
NOWHOW

ここはつっこんでいいところなのだろうか。
しかし恥かかされたと憤ってさらに草生やされたらたまらんからスルーがいいのかな…
304デフォルトの名無しさん:2012/02/01(水) 01:51:41.90
そのほうがいい。それに今もDOS使ってるから、BATノウハウも必要だしな。
305デフォルトの名無しさん:2012/02/01(水) 03:31:27.03
またそんな必死に釣りを仕掛けんでも
306デフォルトの名無しさん:2012/02/01(水) 03:49:11.39
>>303
草に隠れて見逃してたw なんというステルス
307デフォルトの名無しさん:2012/02/01(水) 05:22:54.38
PerlってーとCGIとしての用途しか思い浮かばないけどお前ら何作ってんの?
308デフォルトの名無しさん:2012/02/01(水) 06:12:14.08
自分だと、サーバの自動処理とか大体Perlだなー。
309デフォルトの名無しさん:2012/02/01(水) 07:14:13.51
$str = <STDIN>;
と記述しても入力欄が表示されないんですが、どうしたらいいのでしょうか。
何か他に記述することがあるのですか、どなたか教えてくださいませ。
310デフォルトの名無しさん:2012/02/01(水) 07:44:01.47
どういう環境でperlを起動させているのかわからないと
答えようがないんじゃないかと
311デフォルトの名無しさん:2012/02/01(水) 08:07:38.38
>>307
俺はむしろCGIで使ったことがないw

Unix系なら各種フィルタやシェルスクリプトでサクッとやれることが
Windowsのデフォルトの環境だとサクッと出来ない
でもコマンド一式入れるのは色々と面倒いから
Perlにその辺をやらせてるな
ワンライナーだったり、.batに埋め込んだり…
312デフォルトの名無しさん:2012/02/01(水) 08:36:29.83
> Windowsのデフォルトの環境だとサクッと出来ない

JScriptつかえばいいやん。
313デフォルトの名無しさん:2012/02/01(水) 09:02:31.35
>>312
おめぇはそれでいいや
314デフォルトの名無しさん:2012/02/01(水) 11:02:27.54
>>312
JScriptg/WSHで一通りのテキスト処理は出来るけど
それは果たして「サクッと」と呼べるのだろか
315デフォルトの名無しさん:2012/02/01(水) 11:55:56.52
学生の頃は掲示板とか作って遊んでたが
今は禿丸じゃ手に負えないテキスト置換に使っている。
316デフォルトの名無しさん:2012/02/01(水) 13:30:50.51
Apacheのログ解析ツールとか作ったな
既存のツールだと不満だから作ったが
結局解析結果を見るのに飽きて全く見なくなって、いつの間にかどっかいった
317デフォルトの名無しさん:2012/02/01(水) 16:06:03.12
Perlを使い始めて20年、今でも日常のちょっとしたツールはこれで作ってる。
面倒な文字列処理があまりにも易々とできてしまうので、やめられん。
318デフォルトの名無しさん:2012/02/01(水) 20:22:37.76
$HOME/bin/ 以下の俺コマンドの類はほとんどPerlだわ。
319デフォルトの名無しさん:2012/02/01(水) 23:09:02.27
CGI、CGIってよく言われてるけど、おれもあんまり作ったことがない。
Perlはテキスト処理や、日ごろのちょっとした処理に使ってる。
320デフォルトの名無しさん:2012/02/01(水) 23:11:17.91
>>309を書き込んだ者です。
環境は、お名前ドットコムというところのレンタルサーバーで、ぽちぽち練習しております。
DELLのノートPC、WinXPを使用しています、エデイタはPadreのデフォルト設定です。

何度試しても<STDIN>が使えないのですが、どうしたらいいのでしょうか。
321デフォルトの名無しさん:2012/02/01(水) 23:13:36.06
print STDERR "お名前を入力してください=";
$str = <STDIN>;
322デフォルトの名無しさん:2012/02/01(水) 23:14:38.96
chomp($str);
print STDERR "こんにちは、$str さん。\n";
323デフォルトの名無しさん:2012/02/01(水) 23:19:32.99
print "Hello, world\n";

は実行できるの?
324デフォルトの名無しさん:2012/02/01(水) 23:24:12.08
エデイタに違和感がする。
325デフォルトの名無しさん:2012/02/01(水) 23:40:41.42
>>320
だから一冊本を通読しろっての。何度も同じこと言わせんな。
326デフォルトの名無しさん:2012/02/02(木) 00:03:11.64
perl のバージョンが書いてないから、インストールされてないことも
考えられるね。きっと Hello, world も無理だよね。
327デフォルトの名無しさん:2012/02/02(木) 00:05:05.83
>>320=基地害
328デフォルトの名無しさん:2012/02/02(木) 00:44:52.33
>>325-327
解決策を提示できないなら黙ってろゴミ
329デフォルトの名無しさん:2012/02/02(木) 01:12:37.86
>>328
なにが「解決策」だよw
池沼はうせろ
330デフォルトの名無しさん:2012/02/02(木) 01:22:20.27
>>320
CGIに関する質問は板違いです。 >>1を参照してください。
レンタルサーバー云々の話はそちらでお願いします。
331デフォルトの名無しさん:2012/02/02(木) 01:23:43.64
309です。
こんな池沼しかいない底辺スレで質問した私が馬鹿でした。
二度ときません。
332325:2012/02/02(木) 01:35:56.94
>>328
解決策は提示しただろうがクズ。
>>325を100回読みなおせ精神異常。
333デフォルトの名無しさん:2012/02/02(木) 01:40:41.96
ニートの分際で生意気だな
334デフォルトの名無しさん:2012/02/02(木) 02:20:50.61
解決策とその理由をきちんと順序立てて提示するとなると
ちょっとした本一冊書ける量になる予感
335デフォルトの名無しさん:2012/02/02(木) 03:26:58.47
Padreを使ってみた。コマンドプロンプトで入力すればいい。
オプションでExternalなんとかをオフってると詰むけど。
336デフォルトの名無しさん:2012/02/02(木) 03:46:48.54
エスパーすると、PerlIOとhtmlタグを混同しとるんじゃなかろうか。
<STDIN>使えば<form><input type="text"></form>が出力されると勘違いしてる節がある。

どっちも角括弧使うし。
337デフォルトの名無しさん:2012/02/02(木) 04:32:05.42
嬉しそうにスレ違いな書き込みをしてる社会不適合にエスパーは不要
338デフォルトの名無しさん:2012/02/02(木) 06:01:52.06
まぁそうカリカリせず。
板違いはその通りなんだけど、どうして勘違いしちゃうのかは興味ある。
分からない方にとっちゃどう聞いていいかも分からんわけで。

自分の納品物がこんな風に動かねーってクレーム入れられた場合どう誘導するのが一番かな。
IO::Interactiveあたり噛ましてエラー吐かせて説明するとか?
339デフォルトの名無しさん:2012/02/02(木) 07:00:14.59
>>338
雑談スレ 4
http://toro.2ch.net/test/read.cgi/tech/1302223650/
ネットワークプログラミング雑談
http://toro.2ch.net/test/read.cgi/tech/1235800707/
【総合】 Webprog板質問雑談スレッド 1
http://kohada.2ch.net/test/read.cgi/php/1131016915/
コレカラWebProgオ勉強シヨウトシテル香具師ガ雑談スルスレ
http://kohada.2ch.net/test/read.cgi/php/1049476765/
340デフォルトの名無しさん:2012/02/02(木) 12:54:16.59
連想配列のkeyの名前は文字数制限や使えない文字はあるんですか?

ファイルパスをkeyにしたいんですけど好ましくないんでしょうか?
$file_path="./log/bbs_name/test.dat";

$FILE_LOCK_FLG{$file_path}=1;というようにです
341デフォルトの名無しさん:2012/02/02(木) 13:13:33.29
それで何か問題あったの?
342デフォルトの名無しさん:2012/02/02(木) 13:39:55.23
うるさいゴミ
343デフォルトの名無しさん:2012/02/02(木) 13:40:32.30
連想配列のkeyの名前は文字数制限や使えない文字はあるんですか?
344デフォルトの名無しさん:2012/02/02(木) 13:41:51.30
>>340
ttp://perldoc.jp/docs/perl/5.10.0/perldata.pod
見る限り「ハッシュキーに使える文字の制限」の記述はなかったので大丈夫だと思われ
345デフォルトの名無しさん:2012/02/02(木) 13:42:38.12
そりゃあるだろうよ。
100兆文字使えるわけないだろ。
常識で考えろ池沼。
346デフォルトの名無しさん:2012/02/02(木) 13:44:44.80
>>345
そんな頭の悪い発言で先生面するのはやめなさい
347デフォルトの名無しさん:2012/02/02(木) 13:45:17.95
そしてフォルダ名からkeyにマルチバイト文字が混入し、バグに苦しむ低脳(>>340)であった
348デフォルトの名無しさん:2012/02/02(木) 13:46:38.13
なにいってんだこいつ(AAry
349デフォルトの名無しさん:2012/02/02(木) 13:47:18.71
趣味グラマだけどPerlが好きで、今更だけどラクダ本買って今読んでるんだけど
冒頭にラリーの言葉でPerlのコミュニティは素晴らしいって書いてあったんだよね。
それで穏やかな気持ちになってさ、2chのPerlスレはどうなんだろって覗いてみたんだがお前らカリカリしすぎワロタ
350デフォルトの名無しさん:2012/02/02(木) 13:49:18.63
カリカリしてるのは煽りたいだけの糞以下ゴミクズ基地害1匹だけ、マジで消えろよ
351デフォルトの名無しさん:2012/02/02(木) 13:52:23.42
>>350
自己紹介乙。
カリカリしてるって笑われてるぞw
こんな時間から書き込みしてるとか余程程度の低いニートなんだろうな。
お前生きてる価値あんの?w
352デフォルトの名無しさん:2012/02/02(木) 13:52:51.43
>>350
俺にはキミが一番カリカリしてるように見える。
とりあえずもちつけ。
353デフォルトの名無しさん:2012/02/02(木) 13:52:51.74
>>349
もうぶっちゃけるけど、Perlに限らずム板マ板にまともなプログラマはいないよ。
みんなブログやTwitterあるいはGithubで情報発信や交流している。
名無しさんにうずもれて満足して、ここにしか居場所がないようになると
それだけ新しいプログラミングの習得が遅れる。
このスレで書かれてるコードが10年前基準のレガシーなものだらけなの見ても分かるでしょう?
354デフォルトの名無しさん:2012/02/02(木) 13:55:14.63
またレガシー厨か
355デフォルトの名無しさん:2012/02/02(木) 13:56:55.33
そうだな、俺も基本的に情報交換はTwitterだわ。
2chは惰性でチェックしてる。
356デフォルトの名無しさん:2012/02/02(木) 15:11:21.74
>>340
文字数制限は




















自分で調べろバーカ
357デフォルトの名無しさん:2012/02/02(木) 15:14:20.58
>>356によってこのスレの存在意義は完全否定されました

今までPerl質問スレをご利用頂き、ありがとうございました
358デフォルトの名無しさん:2012/02/02(木) 15:16:11.02
だから今こうやって調べてるんじゃないですか。
359デフォルトの名無しさん:2012/02/02(木) 15:23:10.58
最近レスの流れが早いな
360デフォルトの名無しさん:2012/02/02(木) 15:45:46.55
>>340
perlgutsでは、キーの長さはU32になってるから、
短くても32bitで表現できるバイト長は保障される(コンパイルされた環境に依存)だと思う。

use Config qw(config_vars);
print config_vars('u32size');
361デフォルトの名無しさん:2012/02/02(木) 17:50:11.77
プログラマーって根暗で穏やかじゃない人が多いですね
このスレ見て思った
362デフォルトの名無しさん:2012/02/02(木) 17:57:06.32
>>361
ここはいつからお前の感想掲示板になったんだ?
ブログにでも書いてろ真性基地害
363デフォルトの名無しさん:2012/02/02(木) 17:59:41.62
おやおや威勢のいいお兄さんだ
364デフォルトの名無しさん:2012/02/02(木) 18:09:31.55
>>361
で?
根が明るいだけしかとりえのないプログラムスキル皆無のゴミが何の用?
365345:2012/02/02(木) 18:12:56.25
>>360
ほらな、だから100兆文字は無理だって言ったんだよ
考えればすぐ分かるだろ
366デフォルトの名無しさん:2012/02/02(木) 18:14:29.13
>>362
じゃあここは何のスレなのかな?
質問しに来た人に対しちゃんと答えるスキルはあるけどあえて教えずネチネチいじめるスレなのかな?
367デフォルトの名無しさん:2012/02/02(木) 18:14:51.41
>>361
自己紹介は自己紹介板でやれや板違い
368デフォルトの名無しさん:2012/02/02(木) 18:20:02.08
自分は根暗でもなく穏やかだと思ってるイケヌマン(>>361)がいるときいて
韓国の首都上海からテポドンに乗って飛んできました!
369デフォルトの名無しさん:2012/02/02(木) 18:22:15.52
>>361
下手な釣りでも大漁で良かったなw
370デフォルトの名無しさん:2012/02/02(木) 18:32:51.50
どう見ても自演です
寂しいのかな
371デフォルトの名無しさん:2012/02/02(木) 19:10:41.33
>>349
ここはPerlのコミュニティじゃなくて2chだから。
372デフォルトの名無しさん:2012/02/02(木) 19:13:11.92
荒らすのだけが目的の奴がまぎれてるからなあ。
前はコテハンもどきを使っててあぼーんしやすかったんだけど
最近使わなくなったのか別の奴が流入してきたのか
紛らわしくていかん。
373デフォルトの名無しさん:2012/02/02(木) 21:01:26.52
>>372=荒らすだけが目的の奴
374デフォルトの名無しさん:2012/02/02(木) 21:11:44.51
どうせPHP厨かレガシー厨だろ。
PHP厨はPerlが存在する限り日の目を見ることはないからな。
375デフォルトの名無しさん:2012/02/02(木) 21:19:30.42
キーについて質問してるヴァカがいるけどどうせ何一つ調べずに質問してるんだろうなキモい
376デフォルトの名無しさん:2012/02/02(木) 21:49:34.23
>>361は自演だったのか
恥ずかしいなおいw
377デフォルトの名無しさん:2012/02/02(木) 22:02:22.60
activeperlをwindowsで使っています

ms-dosの8.3形式の短いファイル名の一覧を取得する方法はありますか
378デフォルトの名無しさん:2012/02/02(木) 22:07:37.89
全一覧取得→性器表現
379デフォルトの名無しさん:2012/02/02(木) 22:26:48.32
380379:2012/02/02(木) 22:29:16.51
381デフォルトの名無しさん:2012/02/02(木) 22:55:05.58
>>377
採用されそうにないが

D:\hoge\fuga の一覧
my @filename_8_3 = grep {/\S+ +\S+ (\S+) +\S+/, $_ =$1} qx'dir /x D:\hoge\fuga';
382デフォルトの名無しさん:2012/02/02(木) 23:08:23.66
d
ばっちり動きました
383デフォルトの名無しさん:2012/02/03(金) 00:54:51.78
>>320
レンタルサーバーがDELLのノートPCでWinXPをインストールしてあるんですか?
ところでインストールしてあるPerlのバージョンはいくつですか?
ちなみに

perl -v

でバージョンを調べられますよ。
384デフォルトの名無しさん:2012/02/03(金) 01:06:10.78
>>320
文章からしてそのレベルでは無理
お前はもっと低級な言語でもやって標準I/Oなんかを学習するべき
385デフォルトの名無しさん:2012/02/03(金) 01:11:34.15
あと<STDIN>が使えない段階でPadreを使うのは早いですよ。
本質的でないところではまってしまい、前に進みません。
また分からないことがあったら遠慮なく聞いてください。
386デフォルトの名無しさん:2012/02/03(金) 02:47:06.11
Padreはゴミ

Perlという言語ではゴミしか作れないだろうけど。
387デフォルトの名無しさん:2012/02/03(金) 02:51:13.22
使い捨てに向いた言語って、結構な褒め言葉じゃね?
388デフォルトの名無しさん:2012/02/03(金) 03:03:11.29
PHP厨様こんな夜中まで書き込みご苦労様です^^
Perlはゴミしか作れませんが、ゴミすら作れず時間が失われるだけのPHPよりはマシですね^^
389デフォルトの名無しさん:2012/02/03(金) 03:06:54.70
ほら、嫉妬してる奴が釣れちゃっただろw
390デフォルトの名無しさん:2012/02/03(金) 03:15:03.86
猫に小判
豚に真珠
PHP厨にPerl
391デフォルトの名無しさん:2012/02/03(金) 03:23:47.79
効いてる効いてる
392デフォルトの名無しさん:2012/02/03(金) 15:24:03.30
   ス   テ   マ   の   予   感
393デフォルトの名無しさん:2012/02/03(金) 21:54:38.24
PHP厨にPerl
394デフォルトの名無しさん:2012/02/04(土) 00:24:37.03
CAPTCHAの認証を破るモジュールとかないよね・・・
無理かな
395デフォルトの名無しさん:2012/02/04(土) 00:28:30.15
ぼくの考えた最強の

PHPeruby
396デフォルトの名無しさん:2012/02/04(土) 00:36:47.06
モジュールとして公開されてたら誰でも破れるだろボンクラ
誰でも破れるものをわざわざ手間かけて実装する低脳がどこにいるんだよパーかおめ
397デフォルトの名無しさん:2012/02/04(土) 00:37:53.32
だよな
諦めるっきゃないか
398デフォルトの名無しさん:2012/02/04(土) 00:45:12.94
モジュールですべてを行おうとするから出来ないんであって、
文字を判読して打ち込むところを人間にしてもらうように
作ればいんじゃね?ただし人間というのは当然、自分以外のっ
てことだけど。エッツな画像とかをえさにすれば、入力して
くれるひともいるでしょ。
399デフォルトの名無しさん:2012/02/04(土) 00:45:28.75
お前が高脳で諦めずにそういうモジュールを完成させても
公開すれば間もなくみんなCAPTCHAやめて別の方法とると思うぞw

そこまで高い的中率を求めるのでなければ自作もできるんじゃない?
画像認識の話になるからそれ系の話を探せば出てくるかもな。
400デフォルトの名無しさん:2012/02/04(土) 00:48:52.22
エロ画像ダウンロード画面でCAPTCHAと入力窓出して、入力されたら裏で認証するとか?
確かにそれだとバレないな。
401デフォルトの名無しさん:2012/02/04(土) 01:07:55.48
Perl使いにはハードルの高いものだな
402デフォルトの名無しさん:2012/02/04(土) 01:11:22.73
CAPTCHA認証は100%不可能。超むずい
403デフォルトの名無しさん:2012/02/04(土) 01:13:37.43
作るほうはたくさんモジュールあるんだけどなw
404デフォルトの名無しさん:2012/02/04(土) 01:16:32.05
JDownloader
405デフォルトの名無しさん:2012/02/04(土) 08:15:03.85
Perlとは違うがCAPTCHA破りならPWNtchaとかあるにはある
http://caca.zoy.org/wiki/PWNtcha

ロシアや中国あたりでは人海戦術でCAPTCHAを破る専門の仕事があるらしいが……
406デフォルトの名無しさん:2012/02/04(土) 10:41:21.75
>>399
>公開すれば間もなくみんなCAPTCHAやめて別の方法とると思うぞw
それはそのとおりだと思うけど、>>394の要件に含まれていないからいいよ。
407デフォルトの名無しさん:2012/02/04(土) 10:48:29.60
 手動はメンドイな
本当なんつーものを開発してくれたんだよ
408デフォルトの名無しさん:2012/02/04(土) 10:49:20.61
最近は犬と猫の色んな写真を8枚くらい表示して
犬の画像を全部選択しろとかもあるな
CAPTHAの次はこれが標準になるだろう

俺の予想ではその次は全部同じ生き物の写真になると思う
例えば全部人間で、商談してる写真やら野球してる写真やら絵を描いてる写真が10枚程表示されて
「スポーツをしてる画像を全部選べ」みたいな

さらにその次は馬鹿撃退用に知識を問う画像が表示されるだろうな
アンコールワットやマチュピチュなんかの写真が12枚程表示されて
「世界遺産を全部選べ」みたいな
画像からググるのはほぼ不可能に近いから一般常識のない馬鹿は撃退される

それを突破しようと思ったら人工知能レベルのモジュールが必要
今から作っとけ
409デフォルトの名無しさん:2012/02/04(土) 10:49:27.86
たった100兆文字くらい、京なら余裕でしょ。
ちょっと昼休みに試してみるわ。
410デフォルトの名無しさん:2012/02/04(土) 10:50:26.60
>>408
ぐあああ
不可能だ
411デフォルトの名無しさん:2012/02/04(土) 10:51:09.72
日本語とかもあるし大変だろ
412デフォルトの名無しさん:2012/02/04(土) 10:52:18.31
そこはほら、jperlだょ
413デフォルトの名無しさん:2012/02/04(土) 10:56:38.26
>>398の方法がすでに>>408をすでに解決している件
414デフォルトの名無しさん:2012/02/04(土) 10:58:06.65
s/すでに//
415デフォルトの名無しさん:2012/02/04(土) 11:07:35.20
CAPTHAの件、
文字を扱えるのは人間だけだってことか
utf8フラグが文字を扱えるわけじゃないってことか。。。
416デフォルトの名無しさん:2012/02/04(土) 11:27:22.19
>>415
何を言ってるのかさっぱりわからん。

データを見た時、データだけでそれが文字かどうかは人間しか分からないから
データとは別に、utf8フラグを明示的につけてやることで
コンピュータが文字と認識できるようになるってことだろ
417デフォルトの名無しさん:2012/02/04(土) 11:37:30.63
>>415-416
どっちも意味わかんねーよ
418デフォルトの名無しさん:2012/02/04(土) 11:43:31.42
今日は土曜日!二日市に行こうかな。
でもな、特に目ぼしいものナさそう。
ノートパソコン欲しい。mac book airよさそうと思ったけど、最低8万するんだね。
たかい。
419デフォルトの名無しさん:2012/02/04(土) 11:47:43.01
>>417
ようするにファイルのことだよ。

ファイル中身を見ただけじゃ、それが文字ファイル
(テキストファイル)なのかバイナリファイルなのか分からない。
もちろん、入っているデータや拡張子から推測はできるが
100%正しい訳じゃない。

それは変数に入っている値も同じで、
コンピュータ(Perl)は中に入っているのが文字なのかバイナリなのか分からない

その二つを区別できなければ、”文字”数の情報が必要な処理や
1文字づつ処理するような関数が作れない。
よくあるのが、マルチバイト文字を渡したら、1文字の左半分だけ残って
右半分が落ちてデータが壊れるとかね。

だから、UTF8フラグというものが必要で、それをつけることでPerlは
文字として判断できるようになる。
まあ、これがモダンな(といっても何年も前から)のPerlの文字列の扱い方。
420デフォルトの名無しさん:2012/02/04(土) 14:26:37.57
>>398
CAPCHA認証を行っている多くのサイトは、まさに今それをやってるんだよ。

Googleから判読不能な文面を受け取って、自身のCAPCHAシステムに組み込み、
入力の集積結果をGoogleに渡してお金を貰うという仕事だ。
421デフォルトの名無しさん:2012/02/04(土) 14:42:49.67
CAPCHAは無理だろ
記号着地問題とかフレーム問題とかクリアせにゃ

超精度のOCRのようなモンができても、
文字じゃなくぬこ写真が出てくれば、それまでだ

画像を記号に変換するつよーいAIが登場しないと、
CAPCHA突破はムリムリだぁ
422デフォルトの名無しさん:2012/02/04(土) 15:16:05.36
愛くるしいぬこ写真がこれ程凶悪な障壁になろうとは誰が予想しただろうか
423デフォルトの名無しさん:2012/02/04(土) 16:01:40.04
ファイルテスト演算子の-dでディレクトリかどうかを判断すると
ディレクトリが多数あるのに「.」「..」しかヒットしないんですが、なにが原因ですか?
424デフォルトの名無しさん:2012/02/04(土) 16:06:17.48
□判定前のファイルとフォルダ混在した一覧にはフォルダはあるのか
□対象ディレクトリのパスは間違っていないか(特に相対パスの場合)
425デフォルトの名無しさん:2012/02/04(土) 16:17:13.41
どんな言語であろうとCAPCHAは無理なんだな
そりゃCAPCHAが大流行するわけだ
426デフォルトの名無しさん:2012/02/04(土) 16:18:02.35
-d 使っているまさにそのコードで cwd してみそ
427デフォルトの名無しさん:2012/02/04(土) 16:25:57.57
ぼくが考えた最強の

KATO-CHA
428デフォルトの名無しさん:2012/02/04(土) 16:31:44.21
ちゃっとだけよ(はあと)
429423:2012/02/04(土) 16:41:35.10
>>424
レスありがとうございます
・フォルダはあります。
・対象ディレクトリのパスは間違ってないです。コード中の
while (my $file = readdir $dh) {
 if (-d $file) {
  print $file;
 }
となってるところを
while (my $file = readdir $dh) {
 print $file;
にしてみたらちゃんと目的のディレクトリを含むファイルの羅列がprintされました。
なぜファイルテスト-dが成功しないんでしょうか?
430423:2012/02/04(土) 16:44:42.38
>>426
レスありがとうございます。
use Cwd qw(getcwd);
$ret = getcwd();
print $ret;
したら、このコードが置いてあるディレクトリ名が表示されました。
ディレクトリハンドルに指定したディレクトリとは違います。
431デフォルトの名無しさん:2012/02/04(土) 16:50:22.36
if (-d $file)



$filepath = "検索対象のディレクトリ/" . $file;
if (-d $filepath)

に変更するとか?
432423:2012/02/04(土) 16:53:17.98
レスありがとうございます。
$fileに入ってるディレクトリ名はすでにフルパスなんです。
もしかしてWindowsだとファイルテストが機能しないとかあるんでしょうか?
433デフォルトの名無しさん:2012/02/04(土) 16:54:46.49
utf8フラグは自分で立つわけじゃないから、CATCHAを破ってくれないってことでおk?
434デフォルトの名無しさん:2012/02/04(土) 16:56:32.96
use utf8; 使ってる場合は、このスレの専門家が長文で丁寧に教えてくれる。
それまで待て。
435423:2012/02/04(土) 16:56:47.06
>>431
すみません。読み込む直前でフルパスじゃありませんでした。勘違いしてました。
言われたとおり改めて変更してみたらうまくいきました。
ありがとうございました!
436デフォルトの名無しさん:2012/02/04(土) 17:10:42.40
どういたしまして
437デフォルトの名無しさん:2012/02/04(土) 22:12:09.11
>>420
エッチな画像見てそのうえGoogleから給料貰えるなんて最高じゃないか
438デフォルトの名無しさん:2012/02/05(日) 06:26:00.76
ぐああああ
CAPCHA対策された
手でシコシコ面倒くさいな・・
439デフォルトの名無しさん:2012/02/05(日) 09:33:17.78
迷惑スクリプト乙
440デフォルトの名無しさん:2012/02/05(日) 12:39:58.42
http://codepad.org/Aphu8pWv

600851475143 の素因数のうち最大のものを求めよ。
という問題をエラトステネスの篩を使って解こうとしたんですが上手くいきません。

どこがいけないんでしょうか。
441デフォルトの名無しさん:2012/02/05(日) 12:42:17.83
まずそのクソスクリプトの先頭に
use strict;
use warnings;
と書き込めアホ
442デフォルトの名無しさん:2012/02/05(日) 12:45:21.05
書きました

http://codepad.org/KDtxx11F
443デフォルトの名無しさん:2012/02/05(日) 12:56:51.44
お次はそのゴミカスみたいな変数をmyで宣言しろ
my $n = Math::BigInt->new("2");
こういう風にやれ
444デフォルトの名無しさん:2012/02/05(日) 12:58:37.39
http://codepad.org/mcEJ1yKG

エラーを直すように書き換えました
445デフォルトの名無しさん:2012/02/05(日) 13:02:49.98
反応はええんだよクズ
俺の都合も考えろ
446デフォルトの名無しさん:2012/02/05(日) 13:19:42.79
……俺の勘違いでなきゃ、相手の鯖に
775145**3≒465.7ペタ個もの配列を要求するんじゃね?これ……
447デフォルトの名無しさん:2012/02/05(日) 13:29:34.23
ああいやいいのか、すまん
448デフォルトの名無しさん:2012/02/05(日) 13:35:46.70
>>447
許す
449デフォルトの名無しさん:2012/02/05(日) 14:33:26.17
……とりあえず最大限意向を尊重するとこんなコードになるのか?
ただしこれでもTimeOutになりかねない(71を見つけるまでが長い)

use strict;
use warnings;
use bigint;

my $target = Math::BigInt->new("600851475143");
my $target_backup = $target;
my $max = int(sqrt $target);

my @era = ("0") x $max;
my $n = 2;
my @q = (); #素因数

for($n; $n <= $max; $n++){
next if $era[$n]; #素数ではなかった
for($b = $n; $b * $n < $max; $b++){
next if $era[$b]; #素数ではなかった
$era[$n * $b] = 1; #篩をあてる
}
if($target % $n != 0){ #素因数ではなかった
next;
}else{ #素因数を見つけた
$target /= $n;
push @q, $n;
$max = sqrt($target); #これくらいやっとかないと重くてかなわん
redo;
}
}
push @q, $target;
print join '', "\n$target_backup = ", (join ' * ', @q), "\n";
450デフォルトの名無しさん:2012/02/05(日) 14:53:59.82
>>444
ウンコ垂れ流しをuseなんとかとmyで止めることがノービス脱却だ
あとは行数とかの巨大なウンコをせき止めれば中級者へのクソ長い道が開ける
変数は3つ程度にしとけ

ttp://codepad.org/SzTEWYQR
451デフォルトの名無しさん:2012/02/05(日) 14:56:15.34
print`factor 600851475143`=~/\d+$/g
452423:2012/02/05(日) 16:13:57.80
口は悪いがここのやつらはやたら親切だな
453デフォルトの名無しさん:2012/02/05(日) 16:39:20.70
>>452
ろくにスキルもないのに先生ぶりたい連中なんだよ
お察しください
454デフォルトの名無しさん:2012/02/05(日) 17:38:51.00
>>452
やつらじゃなくて、一人だけね、そういう変なのが今常駐してるのは。
455デフォルトの名無しさん:2012/02/05(日) 17:45:05.62
きったねぇ糞コードだなおい
456デフォルトの名無しさん:2012/02/05(日) 18:17:49.66
篩を作るのをサボったら1秒くらいで答えが出た。
http://codepad.org/fCR3NCvy
457456:2012/02/05(日) 18:28:48.16
なんかいろんな数値でやったら変な結果がいっぱい出たw
バグ取りせずに逃げよう...
458デフォルトの名無しさん:2012/02/05(日) 19:18:38.32
my $max = 600851475143;
my @n = (2..int(sqrt($max)));
my @p;

do {
  push @p, shift @n;
  @n = grep {$_ % $p[-1] != 0} @n;
} while ($p[-1] ** 2 < $n[-1]);

push @p, @n;

foreach (reverse(@p)) {
  if ($max % $_ == 0) {
    print;
    last;
  }
}
459デフォルトの名無しさん:2012/02/05(日) 20:18:50.31
結構重かった。
http://codepad.org/eMe8JqZ5
460デフォルトの名無しさん:2012/02/05(日) 20:19:19.15
my $max = 600851475143;
my @n = (2..int(sqrt($max)));

while ($n[0] ** 2 < $n[-1]) {
  # あったほうがちょっとは早い?
  #if ($max % $n[0] == 0) {
  # @n = grep {$_ < $n[-1] / sqrt($n[0])} @n;
  #}

  @n = grep {$_ % $n[0] != 0} @n;
}

printf "%d\n", (grep {$max % $_ == 0} @n)[-1];
461デフォルトの名無しさん:2012/02/05(日) 22:26:39.88
パールってスレッド作れないの?
一つのコードのファイルでマルチスレッドできないの?
462デフォルトの名無しさん:2012/02/05(日) 22:40:59.65
スレッドは作れるが、ライブラリがスレッドセーフとは限らない。

野良ライブラリが多く、その野良ライブラリに
スレッドセーフかどうか書いてあることは稀で
次第に嫌になってくるであろう
463デフォルトの名無しさん:2012/02/05(日) 22:46:19.83
このスレで我慢しろ
464デフォルトの名無しさん:2012/02/06(月) 06:45:58.34
>>454
自己紹介乙
465デフォルトの名無しさん:2012/02/06(月) 08:48:27.47
PHP最強
466デフォルトの名無しさん:2012/02/06(月) 12:37:51.41
○○○最強≠○○○だけ覚えれば十分、他は記憶領域の無駄だから一切覚えるな
467デフォルトの名無しさん:2012/02/06(月) 14:22:39.79
もしプログラム言語を1つしか覚えられないとしたらPHPしかないじゃん
これには異論ないと思う
というか異常者以外は分かるはず
実際はいくつも覚えられるからPHPを中心に他の言語もかじってみるけど
他の言語は全部ゴミみたいなものだから結局PHPがいかに優れているかを再確認するだけになるんだよね
468デフォルトの名無しさん:2012/02/06(月) 14:25:41.09
PerlもPHPもジャングル言語だ
469デフォルトの名無しさん:2012/02/06(月) 14:30:50.79
【ジャングル】
弱肉強食
密林
錯綜、複雑
物騒な場所
非情な生存競争の場
浮浪者の集まる所
470デフォルトの名無しさん:2012/02/06(月) 16:03:15.04
my $buf = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaa';
test($buf);

sub test{
#1
#my $hoge = shift;
#return length($hoge)/2;

#2
#return $_[0]/2;
}

引数渡すときに、コピーが作られるのは代入したタイミングですか?
#2の場合は$bufの中身分のメモリは確保されないということでいいんでしょうか?
471デフォルトの名無しさん:2012/02/06(月) 16:04:23.86
#2
#return length($_[0])/2;
でした。
この辺はどうでもいいですが。
472デフォルトの名無しさん:2012/02/06(月) 18:37:30.70
お前の存在もどうでもいい
473デフォルトの名無しさん:2012/02/06(月) 22:32:18.10
perlでwhileの二重ループがうまくいかないのですが何が原因でしょうか?
うろ覚えですがおよそ下記のようなものです。

while($a=<IN1>){
 seek(IN2, 0, 0)
 while($b=<IN2>) {
  if($a=~$b) {
   出力する
  }
 }
}

$aの一行目はちゃんと期待どおりに$bが出力されるんですが
$aの二行目から$bが出てこないんです。
ファイルポインタの位置を戻さないとダメかと思ってseek入れたんですがダメでした。
ファイルには両方にそれぞれ対応する文字列が入ってます。
474デフォルトの名無しさん:2012/02/06(月) 22:36:33.86
馬鹿には無理
475デフォルトの名無しさん:2012/02/06(月) 22:42:57.79
>>474
自己紹介乙www
476デフォルトの名無しさん:2012/02/06(月) 22:49:11.85
seekよりもopenのほうが分かりやすいでしょ。
それよりもI/Oを最低限の回数にするために、
my @a = <IN1>;
my @b = <IN2>;
以下、宿題。
のほうがいいと思うけどね。
477デフォルトの名無しさん:2012/02/06(月) 23:14:21.76
>>470
http://perldoc.jp/docs/perl/5.10.0/perlsub.pod#DESCRIPTION
> 配列 @_ は local 配列ですが、その要素は実際の スカラパラメータの別名です。

Devel::Peekで確認しれ。
478デフォルトの名無しさん:2012/02/06(月) 23:41:53.95
「PHP 5.3.9」に危険度の高い脆弱性、最新版へのアップデートを (Impress Watch) - Yahoo!ニュース
http://vv1.jp/oqv

さすがPHPさんやで・・・
479デフォルトの名無しさん:2012/02/06(月) 23:55:39.20
>脆弱性を悪用された場合、遠隔の第三者によって任意のコードを実行される危険性がある。

任意のコードを実行されるんだってよwww
PHPかっけー!www
480デフォルトの名無しさん:2012/02/07(火) 00:46:28.73
>>478-479
こちらへどうぞ。

Perl VS PHP
http://kohada.2ch.net/test/read.cgi/php/982591467/
481デフォルトの名無しさん:2012/02/07(火) 23:15:39.41
>>476
それで読み込んだ場合要素には各行が入ったんですが基本的に行毎に入ると思っていいでしょうか?
処理系によっては空白区切りの単語毎とかいうことはあるでしょうか?
482デフォルトの名無しさん:2012/02/07(火) 23:19:25.10
$/ の値次第
perlvar嫁
483デフォルトの名無しさん:2012/02/08(水) 01:32:28.78
$num = 3;
open(DATA, ">:encoding(cp932)", "./test$num.txt") || die "ファイルが開けません: $!";
これを実行しtext.txtが開けなかった場合、
「ファイルが開けません: ページ No such file or directory at test.pl line 10.」
と表示されますが、この時にファイル名を表示することは出来ないでしょうか?

今はこの様にしているのですが、毎回こうするのは不恰好で、
もしファイルが開けなかった場合にどのファイルにアクセスしようとしたのか分からないものかと思いました。
$num = 3;
$filename = "./test$num.txt";
open(DATA, ">:encoding(cp932)", $filename) || die "ファイルが開けません: $filename\n$!";
484デフォルトの名無しさん:2012/02/08(水) 02:22:10.81
>>483
"ファイル"を表示したい変数に置き換えれば?
485デフォルトの名無しさん:2012/02/08(水) 04:34:20.56
お手軽な感じのサブルーチンか、ユーティリティクラスでも作ればいいんじゃないか。
486デフォルトの名無しさん:2012/02/08(水) 05:46:47.65
うるさいゴミ
487デフォルトの名無しさん:2012/02/08(水) 07:39:37.13
>>483
べつにそのままで構わないと思う。
488デフォルトの名無しさん:2012/02/08(水) 08:18:23.62
377です

さらに、フルパスを8.3形式で取得する必要が生じました
getcwdでカレントを取得して、各階層をGetShortPathNameしていく、
という方法は思い付いたのですが、もっと一発で済むような方法はありませんか
489デフォルトの名無しさん:2012/02/08(水) 08:41:16.59
あ、なんかフルパスをGetShortPathNameするだけでいけそうでした
490デフォルトの名無しさん:2012/02/08(水) 19:24:10.86
ラクダ本3版 88ページ リストを取り扱っている段なのですが

# 「逆コンマ演算子」
return (pop(@foo) ,pop(@foo))[0];

とあります。この記述がどういう作用を持つのかは分かるのですが(配列から後ろ2つの要素を削除し、末尾だったものを返す)
コメントの意味が解せません:逆コンマ演算子とはどういう意味なのでしょうか?
491デフォルトの名無しさん:2012/02/08(水) 19:35:00.61
分かりました。コンマ演算子で項を繋げていった場合、スカラーリテラルで評価されるとリスト末尾の要素が返る。
それに対して>>490はリスト先頭の要素が返る。コンマ演算子とは逆の作用と捉えることが出来る。
なので>>490の記述全体の事を逆コンマ演算子と呼んだということですね。
492デフォルトの名無しさん:2012/02/08(水) 21:41:56.60
うむ。そういうことだ。
493デフォルトの名無しさん:2012/02/09(木) 22:41:48.75
Perl on Heroku | Hacker News
http://news.ycombinator.com/item?id=3570894

judofyr/perloku - GitHub
https://github.com/judofyr/perloku
494デフォルトの名無しさん:2012/02/10(金) 01:41:12.46
ファイルを1行ずつ読んで処理してます。ループ内でさらに1行だけ先読みしたい場合はどうすればいいですか?

while (<>) {
my $line = $_;
...
if ($line =~ /xxx/) {
#ここでさらに次の行を読んで一緒に処理したい
}
}
よろしくお願いします
495デフォルトの名無しさん:2012/02/10(金) 01:45:26.12
一行先読みじゃなくて一行遅延すりゃあいいだろ
お前はアホか
496デフォルトの名無しさん:2012/02/10(金) 03:31:52.51
すんまへん。一行遅延ですか。
自分は結局配列に入れました。
497デフォルトの名無しさん:2012/02/10(金) 04:01:15.08
配列でいいとおもう
それで問題が発生したら別の方法がないか
質問すればいい
498デフォルトの名無しさん:2012/02/10(金) 05:20:20.81
>>494
http://perldoc.jp/docs/perl/5.10.1/perlfaq5.pod

> perl -e "print join qq/\n/, qw(abc def ghi jkl mno pqr stu vwx yz)" > foo.txt
> perl following.script foo.txt

#!/usr/bin/perl -w
use strict;
while (<>) { chomp;
  print "$.:", my $line = $_;
  if ($line =~ /[ekw]/) {
    # Win の場合は <> と chomp で削られる byte size が 2
    my $lf = chomp(my $next_line = <>) ? 2 : 0;
    print " (next: $next_line)";
    # $next_line を本当に「先読み」扱いにしたいのなら
    seek ARGV, - length($next_line) - $lf, 1;
    --$.;
  }
  print "\n";
}

use Tie::File; # http://perldoc.perl.org/Tie/File.html
tie my @line, 'Tie::File', './foo.txt' or die $!;
for my $i (0..$#line) {
  print $line[$i] = ($i + 1) . ":$line[$i]"; # 実際にファイルへ行番号を追記
  if ($line[$i] =~ /[ekw]/) {
    print " (next: $line[$i + 1])";
  }
  print "\n";
}
untie @line;
499デフォルトの名無しさん:2012/02/10(金) 05:44:10.05
file1, file10, file2
という感じの文字列があって、
これを数値順にソートするにはどうすればいいですか
要は、エクスプローラのファイル名の並びです
500デフォルトの名無しさん:2012/02/10(金) 06:12:31.75
>>499
Sort::Key::Natural とか Sort::Naturally とかを使うのが簡単。

手で作っても大したことないけど。

なんか Python スレにも同じ質問があがってたね。
501デフォルトの名無しさん:2012/02/10(金) 07:30:18.34
502デフォルトの名無しさん:2012/02/10(金) 07:39:01.77
>>500
両方使ってみましたが、思ったものと違うようです
数字の前の文字列が共通の要素同士ではちゃんと数字順に並んでいるのですが、
文字列部分での順序がランダムに見えます
ランダムという訳ではなくて何か規則はあるのだろうけど、多分賢すぎです
日本語を扱わせていることに原因があるのかもしれません

>>501
見るべき場所が判りません
503デフォルトの名無しさん:2012/02/10(金) 08:47:25.63
例えば、natkeysortでは
え00 う01 い02 あ03 a03 b02 c01 d00
こんな感じの並びになります
504デフォルトの名無しさん:2012/02/10(金) 09:29:16.03
>>503
日本語いれるなよ。しきいがたかくなるやん
505デフォルトの名無しさん:2012/02/10(金) 09:29:43.29
use Encode;
とか…心細い
506デフォルトの名無しさん:2012/02/10(金) 09:29:57.25
>>504
decodeすればまだなんとか
507デフォルトの名無しさん:2012/02/10(金) 09:31:12.32
>>502

ああ、NaturalSort が内部で use locale しているので、
日本語がおかしなことになってるようですね。

数字部分がそれっぽく並ぶだけでいいのなら、
とりあえず、こんなのでいいのでは。

sub makekey($) {
    my $s = shift;
    $s =~ s/\d+/sprintf '%09d', $&/ge;
    lc $s;
}
sub naturalsort(@) {
    return map {$_->[0]} sort {$a->[1] cmp $b->[1]} map {[$_,makekey($_)]} @_;
}
508デフォルトの名無しさん:2012/02/10(金) 10:11:20.37
>>502

ちょっと見てみたけど、内部で use locale しているのは
Sort::Naturally だけだった。

Sort::Key::Natural のほうは日本語でもそのまま動くみたい。

Sort::Naturally を use せずに Sort::Key::Natural だけで
試してみてはどうでしょうか。

509デフォルトの名無しさん:2012/02/10(金) 10:18:24.74
use Sort::Key::Natural;
@a = ('a03', 'b02', 'c01', 'd00', 'あ03', 'い02', 'う01', 'え00');
@b = natsort @a;
print "@b";

の結果が>>503になるようです
510デフォルトの名無しさん:2012/02/10(金) 10:21:56.27
use strict; # >>499 >>503
my @file_list = ('file1', 'file10', 'file2', 'e00', 'u01', 'i02', 'a03', 'b02', 'c01', 'd00');
my $i = 0;
my $longfilename_size = 255;
my @temporary_list = ();
my ($file_name, $k, $m, $used_as_number);
for $file_name (@file_list) {
  $m = $longfilename_size;
  $k = index($file_name, '0'); if($k >= 0) { if($k < $m) { $m = $k; } }
  $k = index($file_name, '1'); if($k >= 0) { if($k < $m) { $m = $k; } }
  $k = index($file_name, '2'); if($k >= 0) { if($k < $m) { $m = $k; } }
  $k = index($file_name, '3'); if($k >= 0) { if($k < $m) { $m = $k; } }
  $k = index($file_name, '4'); if($k >= 0) { if($k < $m) { $m = $k; } }
  $k = index($file_name, '5'); if($k >= 0) { if($k < $m) { $m = $k; } }
  $k = index($file_name, '6'); if($k >= 0) { if($k < $m) { $m = $k; } }
  $k = index($file_name, '7'); if($k >= 0) { if($k < $m) { $m = $k; } }
  $k = index($file_name, '8'); if($k >= 0) { if($k < $m) { $m = $k; } }
  $k = index($file_name, '9'); if($k >= 0) { if($k < $m) { $m = $k; } }
  if($m == $longfilename_size) { # no number
    $temporary_list[$i++] = join '', '<', $file_name;
  } else {
    $used_as_number = substr($file_name, $m);
    $temporary_list[$i++] = join '', substr($file_name, 0, $m), sprintf('%03d', $used_as_number), '<', $file_name;
  }
}

for $file_name (sort @temporary_list) {
  $k = index($file_name, '<');
  print substr($file_name, ++$k), "\n";
}
511デフォルトの名無しさん:2012/02/10(金) 10:31:20.49
おおー
解読できてませんが、ちゃんと動いているようです

sort {$array[$a] cmp $array[$b]} (0 .. $#array)
みたいな使い方がしたいので、sortから呼び出す関数の形になってると有り難いです
512デフォルトの名無しさん:2012/02/10(金) 10:40:49.93
>>509
ちゃんと use utf8 すれば動くよ。
513デフォルトの名無しさん:2012/02/10(金) 11:32:07.44
そう思って、encode('utf-8', ) とかはやったんだけど、
その場合の結果は>>503と同じで
use utf8 とは挙動が異なるようです
use utf8はちょっと避けたい理由があるので、
なんとかuse Encodeの範囲内で解決できませんか
514デフォルトの名無しさん:2012/02/10(金) 11:35:41.16
>>502
> 見るべき場所が判りません
「(なにか)」が今回はファイル名の数字部分で、そのまま解き方の解説なんだけど。

my @file_list = qw( い2 file1 い00 file10 あ10 file02 い02 あ5 い1 file2 5 007 1 a1b10 a1b01 a1b1 );
@file_list = (map("$_.b", @file_list), map("$_.a", @file_list));

print(
  map "$_->[0]\n",
  sort { $a->[1] cmp $b->[1] || $a->[2] <=> $b->[2] || $a->[3] cmp $b->[3] }
  map [ $_, /^(.*?)([0-9]+)(\..+)\z/ ],
  @file_list
);
515デフォルトの名無しさん:2012/02/10(金) 14:21:17.78
>>494
# 単純にもう1行追加したい
while(defined (my $line = <>)){
...
if ($line =~ /xxx/){
# 単純に1行追加
my $new_line = <>;
...
}
}

# 追加行に通常処理も加えたいような場合
my $state = 'start';
while(defined(my $line = <>)){
if ($state eq 'xxx'){
# 1行追加処理(後で通常処理も加える)
...
$state = 'start';
# fall thru.
}
if ($state eq 'start'){
...
$state = 'xxx' if ($line =~ /xxx/);
next;
}
}
516デフォルトの名無しさん:2012/02/10(金) 14:34:29.39
>>513

そもそも、もとの文字列が utf-8 じゃないのでは?
もし上の例で cp932 が生ではいっているのなら、

@tmp = map {decode('cp932',$_)} @a;
@b = map {encode('cp932',$_) } natsort @tmp;

でいけるはず。
517デフォルトの名無しさん:2012/02/10(金) 18:07:17.86
use utf8して、スクリプト中に埋め込んだ文字列をソートするとうまくいくけど、
外部からsjisのファイルを読み込んでutf8に変換してソートしようとしても、
どうもうまくいきません
518デフォルトの名無しさん:2012/02/10(金) 18:21:37.79
>>517
お前のコードがゴミなんだろ
ここで自分のコードはゴミですアピールして楽しい?
まじ池沼だな
519デフォルトの名無しさん:2012/02/10(金) 18:33:30.61
>>517
ちゃんと、decode('shiftjis', $_) でインポートしてソートしてる?

>>518
更年期障害ですか、あんた
520デフォルトの名無しさん:2012/02/10(金) 18:40:07.15
>>517
ここはPerlの質問スレであってお前の糞コードのどこが悪いかを質問スレじゃねぇんだよ
521デフォルトの名無しさん:2012/02/10(金) 18:44:56.39
自前でエンコードするのは諦めて、
>>4のテンプレを全面採用すると、あっさり動きました

うーむ、従うしかないのか、、、
その方がソースも遥かに綺麗ではあるんだけど、、、

sub s2u {
my $str = shift;
return encode('utf-8', decode('cp932', $str));
}
↑こんなのを書いて渡しても、挙動がおかしい
これの逆パターンの関数を書いて、uff-8ソースに埋め込みの文字列を表示させようとしても
化けたり、Wide character云々とか言われる

これでうまく行くケースも結構あるんだけど、utf-8にもいろいろあるみたいで、
その違いが乗り越えられない
522デフォルトの名無しさん:2012/02/10(金) 19:04:07.43
>>520
うるさいゴミ
523デフォルトの名無しさん:2012/02/10(金) 19:11:36.80
自分でも叩けそうなレベルの話題になると急に元気になるのなw
524デフォルトの名無しさん:2012/02/10(金) 19:21:08.17
>>521
open (my $FH, '<', "./test.sjis");
  my @test;
  while (<$FH>) {
    chomp;
    push @test, decode('shiftjis', $_);
  }
close $FH;

for my $v (@test) {
  print encode_utf8($v). "\n";
}

これで警告なくうまく出力されるけど?
525デフォルトの名無しさん:2012/02/10(金) 19:21:33.05
>>511
sort {($a0 = $a) =~ s/(\d+)/1000 + $1/ge, ($b0 = $b) =~ s/(\d+)/1000 + $1/ge, $a0 cmp $b0} @file_list;

関数の形
sort renamed @file_list;
sub renamed {
    (my $a0 = $a) =~ s/(\d+)/1000 + $1/ge;
    (my $b0 = $b) =~ s/(\d+)/1000 + $1/ge;
    $a0 cmp $b0;
}
526デフォルトの名無しさん:2012/02/10(金) 19:27:00.22
>>524
今こっちでも同じ答えを見つけたのにー

encodeしちゃいけなかったのね
decodeして中間コードみたいな状態で渡して、
受け取ったらdecodeせずにencodeだけすればいいのか
なんか気持ち悪いけど

>>525
おお、シンプル
試してみます
527デフォルトの名無しさん:2012/02/10(金) 19:31:11.70
>>526
encodeとdecodeを根本で勘違いしてる。

decodeは、外部から文字列をPerlスクリプト内へインポートするための関数。
外部から取り入れた文字列はバイナリ認識だからPerlで文字列として扱えるようにする。

encodeは、Perlスクリプト内から外部へ文字列をエクスポートする関数
Perl内で文字列は特殊な方法で管理されてるから、その管理を外して外部でも使えるようにする。

インポートして、処理して、エクスポートする。
528デフォルトの名無しさん:2012/02/10(金) 19:56:00.26
まあ、そうなんだけどね
何で今まで困らなかったんだろう

そもそも、'utf8'という指定がencodeやdecodeで使えるのはどういうことなんだ
529デフォルトの名無しさん:2012/02/10(金) 21:08:52.36
>>528
decode,encodeは「他のコード⇔UTF-8」じゃなくて「他のコード⇔Perl内部コード」だよ
「utf8フラグ」ってのはいい加減誤解の元だよね
530デフォルトの名無しさん:2012/02/10(金) 21:42:14.63
見事に馬鹿しかいない
531デフォルトの名無しさん:2012/02/10(金) 21:57:24.00
>>530
学校でろくな先生に出会わなかったんだろうな…
532デフォルトの名無しさん:2012/02/10(金) 21:58:28.66
だからUTF8フラグが混乱の元。
Perl文字列フラグだったらよかった。
533デフォルトの名無しさん:2012/02/10(金) 23:58:48.17
名前変えても挙動は一緒だろ、何が問題なのか全然分かってないなw
534デフォルトの名無しさん:2012/02/11(土) 00:10:03.08
danが問題なんじゃなかったのか?違ったか?失礼。
535デフォルトの名無しさん:2012/02/11(土) 00:26:15.06
大規模な文字集合になると、文字なのか文字でないのかの境界が
単純に0/1で分けられないからなぁ
そういうのは今のところUTF8フラグでは扱えない
それに文字か文字でないのかは多分に気分的なものがあるので、
そうなると本質的に機械では扱えない
536デフォルトの名無しさん:2012/02/11(土) 00:46:48.41
>>535
お前馬鹿だろ?
頓珍漢なこと言ってるぞ。
537デフォルトの名無しさん:2012/02/11(土) 08:36:37.59
      , -‐‐‐‐‐- 、
     /r。−、r。−、ヽ
    _.j .l_,...、_l l_,...、_l r‐、
   l l‐r‐‐r―r―(,)‐ァ_.ノ
   、ゝ  ̄    ̄  ノ. ノ <いきなり尻見せ
   ゝ、`‐――‐‐_',イ ヽ
      ( ̄て""´  ヽ \
      \   .)    、 ~ヽ
        ヽ_人      l ,l
         /    __/_ノ
         l   -‐ ̄ ヽ
         \   ヽ
538デフォルトの名無しさん:2012/02/11(土) 11:25:25.34
内部コードを隠してしまいたいのか、
世界全部が内部コードと同じになって欲しいのか、
方向がはっきりしない
539デフォルトの名無しさん:2012/02/11(土) 12:34:05.24
世界全部が内部コードと同じになることはありえない。

答えは出てる。
540デフォルトの名無しさん:2012/02/11(土) 12:41:38.24
今でも普通にsjisのデータが増え続けてるし、過去のデータはきっと永久にsjisだし
541デフォルトの名無しさん:2012/02/11(土) 13:18:58.45
だけど、いちいちプログラマがこのファイルの文字コードは何だろう?と
考え続けていたら、大変なことになる。

だからせめてプログラム言語の中では統一しよう。
そうやってできたのがPerl標準のEncodeモジュール。
542デフォルトの名無しさん:2012/02/11(土) 14:30:53.29
漢字に代表される大規模な文字集合の場合、一文字一文字が
英語でいうところの単語の性質を帯びてくる。

ここで、任意の英字の並びに対して、単語であれば1、単語
でなければ0、という「単語フラグ」というものを導入する
ことを考えてみる。

Perlで単語を処理する場合は必ず単語フラグを1にしなければ
ならない。

その試みは果たして成功するだろうか?

543デフォルトの名無しさん:2012/02/11(土) 16:45:06.22
単語か単語ではないかを考えるのは無価値なので、考えない
ことにして、英字の並びをそのまま扱うようにするのがいい。

(ここまでの答えを自分で出せたひとだけ次に進みます。)
544デフォルトの名無しさん:2012/02/11(土) 18:02:26.05
結論

単語フラグは意味が無いのだから
世の中のフラグはすべて意味が無いものなのです。
545デフォルトの名無しさん:2012/02/11(土) 18:02:49.38
>>544
それは詭弁だ。
546デフォルトの名無しさん:2012/02/11(土) 19:14:26.21
>>544
お前変な新興宗教入ってるだろ
547デフォルトの名無しさん:2012/02/11(土) 19:44:45.99
少数の人だけしか理解できない呪文の不可解な連なりであり、
ヤギの血を含み、あなたの魂を永遠に堕落させる。
上司があなたに金曜夜21時に緊急の仕事を命ずるときにしばしば使われる。
548デフォルトの名無しさん:2012/02/11(土) 20:02:03.11
時間を分単位とかで切り上げしたいのですが
どうやったらいいのでしょうか
549デフォルトの名無しさん:2012/02/11(土) 20:03:35.82
小学生のさんすうレヴェルだろ
プログラミング以前の問題だ
550デフォルトの名無しさん:2012/02/11(土) 20:12:32.51
20:11:15 を 20:12:00 に切り上げたいのか?
まさか、お前。。。釣りじゃないよな?
551デフォルトの名無しさん:2012/02/11(土) 20:15:23.95
>>544
君は、utf8フラグまで戻って出直してください。
552デフォルトの名無しさん:2012/02/11(土) 21:24:59.13
>>548
失せろゴミ
ここはPerlの質問スレであって
幼稚園児並の知能しかない低能に手取り足取り教える場所じゃねぇんだよ
553デフォルトの名無しさん:2012/02/11(土) 21:31:39.83
554デフォルトの名無しさん:2012/02/11(土) 21:37:48.24
>分単位とか
「とか」って言ってる辺りで察してやれよ、頭が遅れてるんだろ。
555デフォルトの名無しさん:2012/02/11(土) 21:40:18.52
>>548
my $time = time;
$time = $time - ($time % 60) + 60;

お前ら、更年期障害ですか。
556デフォルトの名無しさん:2012/02/11(土) 21:43:40.50
>>548=ゴミクズ
557デフォルトの名無しさん:2012/02/11(土) 21:44:48.79
>>555
更年期障害はオマエだよ
その時間とやらの書式なにも考えてねーだrks
558デフォルトの名無しさん:2012/02/11(土) 21:47:50.11
>>557
秒数から加工する知恵がでないお前が頭悪いだろ。
559デフォルトの名無しさん:2012/02/11(土) 21:53:48.33
>>558
どこにも秒数なんて書いてねーだろ
お前には別世界でも見えてんのかアホ
560デフォルトの名無しさん:2012/02/11(土) 21:55:28.93
>>559
お前プログラムした事あるの?
あそこから希望の書式に加工できないの?
答えれないのなら質問以外でレスするなクズ
561デフォルトの名無しさん:2012/02/11(土) 21:56:54.21
>>555
元々00秒の値でやってみなw
562デフォルトの名無しさん:2012/02/11(土) 21:58:35.86
>>560
だからお前はどこの異次元のぞいてんだ
希望の書式 とか何かカッコイイ単語並べて悦にドハマりしてんじゃーよwww
そのクソ書式がどこにあんだよ
563デフォルトの名無しさん:2012/02/11(土) 22:01:02.38
>>561
my $s = (time % 60);
my $time = time - $s + (($s > 0) ? 60 : 0);

これでよろしいか?
例出して答えろよ。

>>562
お前は黙ってろ
564デフォルトの名無しさん:2012/02/11(土) 22:04:19.02
>>563
> 例出して答えろよ。
恥かいたからって八つ当たりかえ?
565デフォルトの名無しさん:2012/02/11(土) 22:08:06.12
>>564
何言ってんだ?

「こうだろうがハゲ」とでもいいながら
正しい式書けって言ってんだ。
質問スレで質問でも回答でもない糞レスを増やすな
566デフォルトの名無しさん:2012/02/11(土) 22:10:50.26
>>565
分からない時には逆ギレするように小学校で習ったのか、坊主?
567デフォルトの名無しさん:2012/02/11(土) 22:11:36.37
>>563
> my $s = (time % 60);

また恥を増やすつもりか
それともオレのおなかをよじれさせるつもりかよwwwww
はたまた引っ掛けとか釣りかよwwww
$$$$$$$$$$$$
568デフォルトの名無しさん:2012/02/11(土) 22:12:57.50
>>566
う〜ん?
ちょっと言ってる意味が分からない

>>567
さっぱり、お前の言ってる意味がわからん。
大丈夫か?
569デフォルトの名無しさん:2012/02/11(土) 22:18:56.85
time + 60 で秒を使わずに 00 にして十分かと

my($year,$month,$day,$hour,$min) = (localtime(time + 60))[5,4,3,2,1];
my $tatoeba = sprintf('%04d-%02d-%02d %02d:%02d:00', 1900+$year,$month+1,$hour,$min);

こんな感じ。釣りなのは分かってるけどね。
570デフォルトの名無しさん:2012/02/11(土) 22:20:32.13
$day が抜けてたwごめんね
571デフォルトの名無しさん:2012/02/11(土) 22:21:02.74
バグ入りコードを晒した>>555が必死で火消し中w
だがもう涙で画面が見えないw
572デフォルトの名無しさん:2012/02/11(土) 22:23:49.16
原因は>>548
この程度も分からない池沼ってコピペでしかプログラム組めなくね?
何でこの板にいんの?
573デフォルトの名無しさん:2012/02/11(土) 22:24:52.04
でもこんなことも他人に聞く時代になったんだね。
未来にはどんな質問がされることやら。
574デフォルトの名無しさん:2012/02/11(土) 22:27:25.11
>>569
それだと00秒の時にも繰り上げてしまうのがよくないって、さっき突っ込まれたけど。

それと、標準のlocaltimeは、Time::Pieceが無いのならしょうがないけど、
使えるならTime::Piece使う方が綺麗で簡単だしモダンなんだそうだ。

my $tp = Time::Piece::localtime($time);
print $tp->hms


>>571
どうした?
どこが間違ってるんだ、カッコ付いてるのが気に入らなかったか?
575デフォルトの名無しさん:2012/02/11(土) 22:32:14.47
> カッコ付いてるのが気に入らなかったか?
こりゃ思った以上に低レベルだわ
頓珍漢にも程がある
576デフォルトの名無しさん:2012/02/11(土) 22:33:49.32
>>574
>それだと00秒の時にも繰り上げてしまうのがよくないって、さっき突っ込まれたけど。
そんなこと気にしない。
なぜなら 00 秒のときに実時間的には小数点以下の値があるから。
548に聞いてみ。問題ないっていうに決まってるぞ。
577デフォルトの名無しさん:2012/02/11(土) 22:35:27.72
だいたい、そんなこといってる間に1秒たつだろw
578デフォルトの名無しさん:2012/02/11(土) 22:37:11.91
>>575
はいはい、低レベル低レベル。

>>576
俺もそう思うけどw
でも指摘されたから修正したけど。

まぁ>>548の質問の内容には十分満たしてるだろ。
579デフォルトの名無しさん:2012/02/11(土) 22:44:15.09
time + 60 # 分で切り上げ
time + 60*60 # 時間で切り上げ
time + 60*60*24 # 日で切り上げ

my($year,$month,$day,$hour,$min) = (localtime(...))[5,4,3,2,1] # 分単位で取得
my($year,$month,$day,$hour) = (localtime(...))[5,4,3,2] # 時間単位で取得
my($year,$month,$day) = (localtime(...))[5,4,3] # 日単位で取得

こういうの、モダンのやり方だと解法が見えてこないよね。
580デフォルトの名無しさん:2012/02/11(土) 22:45:41.47
440 : 名無しさん@お腹いっぱい。 : 2011/07/04(月) 00:00:00.00 ID:lVHU+IzZ0

誰だよ実質的に小数点以下の値がある とか穂剤てるアフォは
そういうバグ野郎はさっさと寝ろよ
581デフォルトの名無しさん:2012/02/11(土) 22:47:03.44
>>579
うん?

>>563>>574 の方法でできる
582デフォルトの名無しさん:2012/02/11(土) 22:47:22.68
ここは、自分の都合に合わせて問題を勝手に変えてしまう
ゆとりPGが楽しく集う場所みたいだなw
583デフォルトの名無しさん:2012/02/11(土) 22:48:05.37
覚えたてで使ってみたくてしょうがないんだろな、オブジェクト指向。
気持は分かる。
584デフォルトの名無しさん:2012/02/11(土) 22:50:50.26
>>582-583
一人事じゃなくちゃんとアンカーつけようねー
585デフォルトの名無しさん:2012/02/11(土) 22:51:55.43
学校のパールはPerl4かもしれないしね
586デフォルトの名無しさん:2012/02/11(土) 22:54:52.28
>時間を分単位とかで切り上げしたいのですが
>『どうやったら』いいのでしょうか
プロセスを質問しているようなので、回答もプロセスがよろしいかと。
587デフォルトの名無しさん:2012/02/11(土) 22:55:09.67
>>585
そんなバカなw
そんな学校辞めてOKだろw

万が一そうだったり、Perl4で強いたげられているんだ!だったら、
まぁその環境にあった良い感じでw
588デフォルトの名無しさん:2012/02/11(土) 22:57:00.34
そこは 強いられているんだ!!! だろ
589デフォルトの名無しさん:2012/02/11(土) 22:59:43.60
>>588

J( 'ー`)し ごめんね。おかあさんはじめて「強いられているんだ」使ったから、ごめんね。
590デフォルトの名無しさん:2012/02/11(土) 23:00:01.84
しいたけたいらげている?
591デフォルトの名無しさん:2012/02/11(土) 23:01:39.30
そもそも元の質問がPerl特有のものじゃなかったしな
592デフォルトの名無しさん:2012/02/11(土) 23:01:52.39
おれなら秒単位で出力して、読むときに分単位で切り上げるけどな、キリッ
593デフォルトの名無しさん:2012/02/11(土) 23:04:04.92
バカガキ>>548に踊らされるアホ住人
594デフォルトの名無しさん:2012/02/11(土) 23:04:45.12
小学生の頃だったら、迷わずrootで1分進めとくオレだけどなw
595デフォルトの名無しさん:2012/02/11(土) 23:04:46.67
バッカでぇーーッす!!!
596デフォルトの名無しさん:2012/02/11(土) 23:52:09.04
>>585>>587
ねーよww
そんな環境あったら抗議多発するし
今時4のみ対応のテキストなんてどうやって用意すんだよwww
597デフォルトの名無しさん:2012/02/12(日) 00:34:36.40
($year,$month,$day,$hour,$min) = (localtime(time + 59))[5,4,3,2,1];
$time = sprintf("%04d-%02d-%02d %02d:%02d:00",1900+$year,%month+1,$day,$hour,$min);
でいけそうです。ありがとうございました。
598デフォルトの名無しさん:2012/02/12(日) 01:16:03.00
義務教育で全生徒が対象なので情報処理の基礎を教えるのが目的です。高度な機能は必要ありません。例えば分の切り上げのようなもので十分です。テキストは教師がプリントを作っています。Perl4を使うことに対して抗議されるほどそもそも授業数がありません。
599デフォルトの名無しさん:2012/02/12(日) 01:22:04.97
中間の変数を使わない方法は
600デフォルトの名無しさん:2012/02/12(日) 01:25:43.38
義務教育だから「こそ」せめてPerlなら5以上にしとけと思う俺は異端なのか?
601デフォルトの名無しさん:2012/02/12(日) 01:25:47.49
>>598
だったらPerlじゃなくてBASICでもLOGOでも使ってれば?
602デフォルトの名無しさん:2012/02/12(日) 02:01:11.84
それではjcode.plなどの
実践技術を学べないだろう
603デフォルトの名無しさん:2012/02/12(日) 02:42:57.16
今でもjcode.pl使ってるヤツは、おばか以外の何者でもない。
604デフォルトの名無しさん:2012/02/12(日) 02:51:07.37
お前KENTさんを侮辱するのか?
605デフォルトの名無しさん:2012/02/12(日) 02:58:12.61
>>604
正直あの人のスクリプトは、もう古い。
有名だからって、あれを見習っちゃいけない。
606デフォルトの名無しさん:2012/02/12(日) 03:03:20.23
このスレに質問してくる人の9割がKENT本読んでんじゃね?て感じのコードだしなぁ…
607デフォルトの名無しさん:2012/02/12(日) 06:15:03.40
>>597
$time = int(($time + 59) / 60) * 60;
608デフォルトの名無しさん:2012/02/12(日) 12:48:02.97
KENTのPerlスクリプトが
通用したのは2000年ぐらいまでだろうね。

今では、高校生がPerlでこんなのを作ってみましたって
感じにしか見えない。
609デフォルトの名無しさん:2012/02/12(日) 13:06:30.46
プログラムなんか簡単そうに見えた方がいいだろ
難解なものを有り難がっているうちはビギナー
610デフォルトの名無しさん:2012/02/12(日) 13:13:01.61
と言う奴が便利なモジュールを使うべきところで全部自分で一から書こうとする


そしてそのスタイルを回りに強要する
611デフォルトの名無しさん:2012/02/12(日) 14:01:33.05
KENTのコードは、今となっては
モジュールでやればいいものを
自分で実装してるからな。
使えない。
612デフォルトの名無しさん:2012/02/12(日) 14:15:42.36
俺の頭の中のPerlも2000年頃で止まってるわ

最近の日本語の文字コード変換のトレンドって何?
俺未だにjcode.pm使ってる

DB使うには今でもDBIやDBDモジュール?

use CGI;とか今でも使う?
613デフォルトの名無しさん:2012/02/12(日) 14:26:33.39
>>612
>最近の日本語の文字コード変換のトレンドって何?
Encode

>DB使うには今でもDBIやDBDモジュール?
基本はそれ、あとはDBIx::*とか、らしい

>use CGI;とか今でも使う?
まあスタンダードだからね
あとはFastCGIとPlackお勧め
614デフォルトの名無しさん:2012/02/12(日) 14:27:47.26
自分でやれる程度のものなら別にいいだろ
モジュールを使うのは、自分でやってたら何日かかるか判らないような規模のものだ
好奇心で作ってみるには時間が無駄過ぎる
615デフォルトの名無しさん:2012/02/12(日) 14:34:27.06
モジュールなら、ただ「使い方を覚える」だけでいい。
だが、それに頼り切って頭が腐った奴には
授業で習うレベルの古典的な>>607すら理解できない。
616デフォルトの名無しさん:2012/02/12(日) 15:05:39.00
>>614
まだ目先のことしか見れてないね。
基本的にこんな感じで選ぶよ。

・標準モジュールは使う
・よく使われてるモジュールは使う
・コードがシンプルになるなら使う

簡単に作れるような内容でもテストまで含めたりすると、
殆どの場合モジュールを使ったほうが速いしね。

逆にモジュールを使わないと判断するのは、そのモジュールがもうメンテされてない。
バグが多い。世の中で誰も使ってない。オーバースペック。こんな所かな。
617デフォルトの名無しさん:2012/02/12(日) 15:12:39.05
> 世の中で誰も使ってない。オーバースペック。

ようするに「わたしにはそのコード理解でkましぇーーーん!!」
だろ 
先例主義のアフォかよw
618デフォルトの名無しさん:2012/02/12(日) 15:26:25.77
>>617
なんでそう思ったの?
619デフォルトの名無しさん:2012/02/12(日) 15:42:41.39
他人のモジュールを使ってバグで悩むのは、作者の想定外のことをするからだ
想定しない作者が悪いというよりも、道具の使い道を把握できない利用者の責任

一度フリーソフトとか作って公開してみるといいよ
何でそんなことに使おうと思ったんだ、みたいな苦情が来るから
620デフォルトの名無しさん:2012/02/12(日) 15:46:39.08
>>619
抽象すぎて説得力がない。
621デフォルトの名無しさん:2012/02/12(日) 15:57:58.27
>>613
サンクス!
622デフォルトの名無しさん:2012/02/12(日) 17:43:13.51
>>619
いや、それは作者のデバッグ力なさすぎな作者の責任だろ。普通に考えて。
想定外の使い方されないようエラーチェックするんだろ?

半角数字入力を期待する処理をする時、
半角数字以外の文字が入力されたらエラーと処理せず、
そのまま放置し不具合出たまま期待と違う処理を続行するような状態を、
「半角数字って書いてんのに、それ以外入力するお前が悪いから知らね」とでも言うのか?

例え日曜プログラマーだったとしても、プログラム作る人間の風上にも置けんな。
623デフォルトの名無しさん:2012/02/12(日) 18:11:39.10
sub funk1 {
print "argv: @_\n";
}

$funk2 = &funk1;
print $funk2("foo bar");

これを実行すると
argv:
とだけ出力されて何故引数が表示されないのか考えました。
何故print $funk2("foo bar");でコンパイルエラーが出ないのでしょうか? (use strictすると出ますが)
$変数名に()をつけて呼び出す記法は無いと思うのですが。
624デフォルトの名無しさん:2012/02/12(日) 18:34:31.22
Bareword
625デフォルトの名無しさん:2012/02/12(日) 18:40:59.78
>>623
なぜ変数名に()を付けてエラーとならないかってのは答えれないけど、
argv: とだけ表示されて、なぜ引数が出力されないかって所は、かなり酷い状態だ・・・・

ちなみに、
sub funk1 {
print "argv: @_\n";
}

$funk2 = \&funk1;
$funk2->("foo bar");

こうすればいいんだけど、もっと基礎をちゃんと勉強しろ
626デフォルトの名無しさん:2012/02/12(日) 18:43:59.84
リファレンスも知らないバカ
627デフォルトの名無しさん:2012/02/12(日) 18:45:30.99
またスパルタ教師ぶりたい連中が湧いてきたな
>>625なんか最後の一言で台無し
628デフォルトの名無しさん:2012/02/12(日) 18:46:34.88
モダンPerlってうっかり車輪の再発明になってしまったモジュールのステマだろ?
629デフォルトの名無しさん:2012/02/12(日) 18:48:45.01
>>627
普通にそういう状態だから。
答えを示さず煽るだけは嫌いだけど、
この質問はなかなか酷い。
2chで質問してイヤな思いするなら別で質問するんだな。
630623:2012/02/12(日) 18:53:17.29
すみません。純粋に疑問点だけを載せればよかったですね。
何故argvしか表示されないのかの理由はわかっています。
631デフォルトの名無しさん:2012/02/12(日) 18:55:25.58
use strict知ってるのにリファレンス知らない奴なんてそうそういねーだろ
632デフォルトの名無しさん:2012/02/12(日) 18:56:17.49
現に居てるじゃねーか
633デフォルトの名無しさん:2012/02/12(日) 18:58:25.45
>>623
        ↓出力する内容
print $funk2("foo bar");
    ↑ファイルハンドル

print $funk2 'foo bar';と等価。
634デフォルトの名無しさん:2012/02/12(日) 18:58:33.88
>>632>>623を「リファレンスも知らない初心者」と決め付けたかったわけだな
残念、本当の初心者ならuse strictすら使えんよ
635デフォルトの名無しさん:2012/02/12(日) 19:03:16.88
>>634
知らなかった事、間違ってた事を全力でフォローするな。
知らない事、間違った事を認めれないガキか。
「間違ってましたー、勉強してきまー」くらいで終わらんのか・・最近のガキは・・・
636デフォルトの名無しさん:2012/02/12(日) 19:04:52.68
>>630 ← で、何でこのゴミは何なの?
637デフォルトの名無しさん:2012/02/12(日) 19:06:00.24
>>635
>「間違ってましたー、勉強してきまー」くらいで終わらんのか・・最近のガキは・・・
本当にそう言ったとしてもお前らがネチネチと終わらせないわけだが
638デフォルトの名無しさん:2012/02/12(日) 19:06:14.98
623って頭悪そうPerl関連の本とか5冊も持ってないんじゃね。
639デフォルトの名無しさん:2012/02/12(日) 19:08:02.35
>>637
それで終わってあとは二度とスレ見なければいい話だろ
>>623みたいなマジキチは2chを便利なオンライン講座と勘違いしてるわけだし
640デフォルトの名無しさん:2012/02/12(日) 19:08:45.12
>>637
誰かが言ってたけど、2chなんて便所の落書きと同じだ。
その中に有益な情報が紛れてるのを見付け出して利用する。
後はポイだ、ポイ。
641デフォルトの名無しさん:2012/02/12(日) 19:08:47.46
>>634
perl -e 'my $a="STDERR";print $a("aaaaa");' >/dev/null
aaaaa

おお、ほんとだ。納得しました。
642デフォルトの名無しさん:2012/02/12(日) 19:09:46.47
間違えた、>>641>>633宛。
643デフォルトの名無しさん:2012/02/12(日) 19:10:34.50
まともな精神構造してたら他人に質問するのにこんな態度はとらんよ。

親がキチガイなんだろう。
まともにガキ1匹教育できないクズが性欲にまかせてガキ作ったのがこの結果。

>>623の親は社会のお荷物。
644デフォルトの名無しさん:2012/02/12(日) 19:10:44.26
>>638>>639
なに必死になってんの…
645デフォルトの名無しさん:2012/02/12(日) 19:12:09.43
>>643
まともな精神構造なら、もし真摯に質問してきても偉そうな態度で答えたりしない
646デフォルトの名無しさん:2012/02/12(日) 19:13:51.93
>>641
出力先がSTDERRだから表示されるけど、
なぜ一々標準出力を /dev/null へ捨ててるのかが意味不明。

笑えるほど何か、いちいちツッコミ所があるな
647623:2012/02/12(日) 19:14:04.54
何か勘違いされていそうですが、僕の書き込みは>>623>>630だけです。
荒れるような質問をしてすみません。>スレ住人

>>633
あー、なるほどそう解釈されたわけですか。
use strict;
sub funk1 {
print "argv: @_\n";
}
open(my $fh, ">test.txt");
print $fh("foo", "bar");

で上手く動きました。ファイルハンドルとして捉えられていたのですね。
$fh("foo", "bar")は関数呼び出しに見えますが、その辺をうまく解釈してくれようとしていたのですね。
ありがとうございました。
648デフォルトの名無しさん:2012/02/12(日) 19:15:29.32
>>646
STDOUTへの出力じゃないことを強調したかったんで…
649デフォルトの名無しさん:2012/02/12(日) 19:17:39.91
>>647
こちらこそ申し訳ないです
老婆心ながら、コードの可読性的に$fhと()の間は空けた方が良いですね
650デフォルトの名無しさん:2012/02/12(日) 19:19:22.51
>>647
無事に動いてよかったよかった^^
謝らなくてもいいよ、ゴミの下げる頭には何の価値もないから^^
解決したならこれでもう二度と来なくていいね^^
荒らしたかったらまたいつでもおいで^^
651デフォルトの名無しさん:2012/02/12(日) 19:20:55.90
>>647
この場合はB::Deparseを使うと分かる。
文法に悩んだら一度試してみると吉。

http://perl-users.jp/modules/b_deparse.html
652デフォルトの名無しさん:2012/02/12(日) 19:22:07.34
>>650 eq >>637か?
非実在下種野郎を自分で演じるとは…
653デフォルトの名無しさん:2012/02/12(日) 19:22:43.94
>>647
自分の書き込みのせいで荒れてるって自覚あるのにまだ書き込んでるのかこの基地害
654デフォルトの名無しさん:2012/02/12(日) 19:24:36.65
>>649
荒らし目的で釣り質問してるのに
可読性のいいコード出すわけねえだろバーカ
655デフォルトの名無しさん:2012/02/12(日) 19:26:01.16
誰か>>648に対するまともな揚げ足取りが思いつかないんでお願いします
656デフォルトの名無しさん:2012/02/12(日) 19:28:44.16
>>655
その説明でやりたい事の意味がわかったから、
いちいち間違いがないか確認しなくていいw
657デフォルトの名無しさん:2012/02/12(日) 19:32:05.90
>>623はパソコンの前で腹抱えて笑ってるんだろうな、
ほんと糞だわ
658デフォルトの名無しさん:2012/02/12(日) 19:35:31.80
釣りでェーーーーっす!!!
バカが大量で今日も飯がウマいでーーーす!!!
プププププ!!!
659デフォルトの名無しさん:2012/02/12(日) 19:38:34.65
>>597
面白い発想。Time::Pieceでまとめるとこんな感じか。
use Time::Piece;
my $time = localtime(time + 59)->strftime("%Y-%m-%d %H:%M:00");

自分で考えるとこれか、>>607と同じだな。
use POSIX qw(ceil);
my $time = ceil(time / 60) * 60;
660デフォルトの名無しさん:2012/02/12(日) 20:53:15.49
>>659
素晴らしい
こういうモダン風への書き換えは参考になります
661デフォルトの名無しさん:2012/02/12(日) 21:04:04.60
やっぱりモダンのほうが見やすいね。
662デフォルトの名無しさん:2012/02/12(日) 21:17:40.76
printでデバッグログを大量に出してるのですが、オンオフしやすいようにdbgPrint(名前は適当)にそのまま置換して、
sub dbgPrint() {print @_ if ($debug);}
とか書こうとしたのですが、上手くいきません。すごく基本的なことだと思うのですが、
こういうことをしたいときはどうすればいいでしょうか。よろしくお願いします。
663デフォルトの名無しさん:2012/02/12(日) 21:21:55.63
sub dbgPrint {print @_ if ($debug);}
664デフォルトの名無しさん:2012/02/12(日) 21:29:47.35
>>662
Sys::Syslog、Log4Perlあたりを使えば、
簡単にデバッグログのON/OFFや
出力先の切り替えができる。
665デフォルトの名無しさん:2012/02/12(日) 21:32:10.50
@t = localtime( time );
if ( $t[0] != 0 ){
   $t[0] = 0;
   $t[1]++;
   if ( $t[1] >= 60 ){
      $t[1] = 0;
      $t[2]++;
      if ( $t[2] >= 24 ){
         $t[2] = 0;
         $t[3]++;
         if ( $t[4] == 2 ){
            $maxday = 28;
         }elsif ( ( $t[4] == 4 )||( $t[4] == 6 )||( $t[4] == 9 )||( $t[4] == 11 ) ){
            $maxday = 30;
         }else{
            $maxday = 31
         }
         if ( $t[3] > $maxday ){
            $t[3] = 1;
            $t[4]++;
            if ( $t[4] >= 13 ){
               $t[4] = 1;
               $t[5]++;
            }
         }
      }
   }
}
666デフォルトの名無しさん:2012/02/12(日) 21:33:54.29
>>662
>うまくいきません

↑どううまく行かないのか分かるわけないだろクズ
お前の見た画面が分かるわけないだろキチガイ
レスいらないからとっとと失せろ
667デフォルトの名無しさん:2012/02/12(日) 21:35:52.29
>>662=ゴキブリ並の知能。
668デフォルトの名無しさん:2012/02/12(日) 21:37:54.22
>>665
ゴミ?
669デフォルトの名無しさん:2012/02/12(日) 21:41:08.31
>ゴキブリ
これ最近流行ってんの?
>>662の頭がそのレベルってのは同意だけど
670デフォルトの名無しさん:2012/02/12(日) 21:44:45.48
>こういうことをしたいときはどうすればいいでしょうか。
本10冊くらい買ってきて読めば?
671662:2012/02/12(日) 21:48:59.07
ソース
my $debug = 1;
sub dbgPrint() {print @_ if ($debug);}
&dbgPrint "test\n";

実行結果
String found where operator expected at test.pl line 3, near "&dbgPrint "test\n""
(Missing operator before "test\n"?)
syntax error at test.pl line 3, near "&dbgPrint "test\n""
Execution of test.pl aborted due to compilation errors.

dbgPrintの呼び出しで括弧を付ければ動きました。
&dbgPrint("test\n");
672デフォルトの名無しさん:2012/02/12(日) 21:54:15.92
>>671
sub宣言時の括弧はいらない >>663
673デフォルトの名無しさん:2012/02/12(日) 21:55:35.54
>>671
もうおまえ来なくていいから
独り言ならブログに書いてろゴミ
674デフォルトの名無しさん:2012/02/12(日) 21:56:55.16
もうちと詳しく言うとsub文での()は「引数とらない」て意味
むしろ定数宣言で使われることが多い
675デフォルトの名無しさん:2012/02/12(日) 21:58:21.17
>>662
なんでロクに質問の仕方も分からないヴァカがここにいるの?
676662:2012/02/12(日) 21:59:37.59
括弧を付けてないprint呼び出しがほとんどなので、いちいち括弧をつけるのは大変です。
なにか良いやり方はないでしょうか?
sub宣言時の括弧はこれからやめます。ありがとうございます。Log4PerやSyslogも見ましたが
自分の目的にはちょっと大げさすぎるようで。でもありがとうございます。
677662:2012/02/12(日) 21:59:47.59
サブルーチンの呼び出しには()
678デフォルトの名無しさん:2012/02/12(日) 22:01:09.77
>>676
情報後出ししてよく平然と質問できるな
679デフォルトの名無しさん:2012/02/12(日) 22:01:52.99
>>662は荒らしだろ。
スルーしろ。
680デフォルトの名無しさん:2012/02/12(日) 22:12:37.45
>>676
use CMDMessage;
$dbg = new CMDMessage;
$dbg->output('on');
$dbg->message('デバッグメッセージ');

とか使えば?
681デフォルトの名無しさん:2012/02/12(日) 22:20:13.06
低レベルな問題を解決できず、
解決方法が分かったし、とりあえず釣りにして行こう的な流れ。
682デフォルトの名無しさん:2012/02/12(日) 22:22:01.29
何この頭の悪すぎる>>662
必要な情報出さずに質問したうえに、レスがついてから情報出してくるとか
回答者のこととか全く考えてないな。
人格障害じゃね?
683デフォルトの名無しさん:2012/02/12(日) 22:24:30.60
このスレは質問がなければ存在価値がないんだよ
わざわざ質問してやってるこっ人に感謝しろ糞共が
684デフォルトの名無しさん:2012/02/12(日) 22:31:15.46
>>683
一番存在価値がねーーーのはオメーだよオメー
さっさと消えろ人糞
685デフォルトの名無しさん:2012/02/12(日) 22:31:39.70
Perl(笑)
686デフォルトの名無しさん:2012/02/12(日) 22:32:39.76
>>665
うるう年を考慮してないね
687デフォルトの名無しさん:2012/02/12(日) 22:55:11.34
@t = localtime( time );
$t[4] += 1; $t[5] += 1900;
if ( $t[0] != 0 ){
   $t[0] = 0;
   $t[1]++;
   if ( $t[1] >= 60 ){
      $t[1] = 0;
      $t[2]++;
      if ( $t[2] >= 24 ){
         $t[2] = 0;
         $t[3]++;
         if ( $t[4] == 2 ){
            if ( ($t[5] % 400) == 0 ){ $maxday = 29; }elsif ( ($t[5] % 100) == 0 ){ $maxday = 28; }
            elsif ( ($t[5] % 4) == 0 ){ $maxday = 29; }else { $maxday = 28; }
         }elsif ( ( $t[4] == 4 )||( $t[4] == 6 )||( $t[4] == 9 )||( $t[4] == 11 ) ){
            $maxday = 30;
         }else{
            $maxday = 31
         }
         if ( $t[3] > $maxday ){
            $t[3] = 1;
            $t[4]++;
            if ( $t[4] >= 13 ){
               $t[4] = 1;
               $t[5]++;
            }
         }
      }
   }
}
688662:2012/02/12(日) 22:55:33.91
やっぱりPerlでprintを使うときは括弧を付けたほうが後々いいということですかね。
689デフォルトの名無しさん:2012/02/12(日) 23:06:50.86
Smart::Commentsが超便利
ttp://d.hatena.ne.jp/kkobayashi_a/20081014/p1
690デフォルトの名無しさん:2012/02/12(日) 23:11:21.16
教材に最適です。頂戴します。
691デフォルトの名無しさん:2012/02/13(月) 03:35:57.87
>>687
完全版がくるとは思わなかったw
692デフォルトの名無しさん:2012/02/13(月) 06:42:43.63
日本と中国の二者択一を迫る米国
http://www.chosunonline.com/site/data/html_dir/2012/02/11/2012021100371.html

米国で大統領補佐官(国家安全保障担当)を務めたブレジンスキー氏は「韓国が米国との同盟を
強く望んだとしても、米国が韓半島から手を引く時代は少しずつ近づいている」と指摘する。

韓国には「中国による東アジアの覇権を受け入れ、中国とさらに接近する」道と、(反日行為をやめて)
「歴史的な反感にも関わらず、日本との関係をさらに強化する」という二つの道が選択肢として提示されていると明言した。

「中国に頼る」ということは、中国の付属品のように屈従して延命を図り、その下で生き延びるという意味だ。
「日本と手を結ぶ」ことについては、説明する必要もないだろう。

与党も野党も、あるいは右も左も関係なく、韓国のあらゆる政治勢力は、
この状況で5000万の国民をどちらの方向に導くか、決断を下さなければならない。


米国 「もう韓国は捨てるから、中国の植民地になるか、親日になり日本の植民地になるか選べよ」 ★3
http://engawa.2ch.net/test/read.cgi/poverty/1329035247/
693デフォルトの名無しさん:2012/02/13(月) 15:25:22.15
>>691
バグ直しただけです
694デフォルトの名無しさん:2012/02/13(月) 20:31:33.76
荒らすだけが目的の奴が最近ちょろちょろとじゃまくさいな。
695デフォルトの名無しさん:2012/02/13(月) 20:57:46.64
お前のことか。
そうやって煽り文句書いて自演で荒らすんだろ。
気持ちわりぃ。
696デフォルトの名無しさん:2012/02/13(月) 21:10:05.86
うるさいゴミ
697デフォルトの名無しさん:2012/02/13(月) 21:19:17.63
>>694は荒らし?
698デフォルトの名無しさん:2012/02/13(月) 21:24:01.83
荒らしというより自分にとって都合の悪い話は全部荒らしに見える精神障害の一種

最近は自己中な精神構造から発症するうつ病患者がいるらしいし、その類
699694:2012/02/13(月) 21:56:32.08
ちなみに俺が荒らしと思うのは
>>695
>>696
>>698
あたり。いずれもたぶん荒らし兼自己紹介だな。
前みたいにコテハン使ってくれればいいのになあ。そうすればあぼーんしやすいのに。
700デフォルトの名無しさん:2012/02/13(月) 21:58:38.13
自己紹介乙
コテ付けてくれ
701デフォルトの名無しさん:2012/02/13(月) 22:03:55.44
しばらく書き込みもなくて落ち着いてるところに荒らしがどうのと燃料投下してる辺りどう見ても荒らしです。
お疲れ様でした。
702デフォルトの名無しさん:2012/02/13(月) 22:04:38.96
http://www17.ocn.ne.jp/~endo/12_1.html
>うつ状態を引き起こす要因
>自己愛性パーソナリティ
>過剰な賞賛を求める特権意識が強い、相手を自分の目的にしか利用しない。
>相手に対する共感の欠如、他者への激しい嫉妬、尊大で傲慢な態度がある。

自分が気に入らないとすぐ荒らし扱いするのは
>>694はこの辺りだろうな、自覚もないみたいだしかわいそうに
703デフォルトの名無しさん:2012/02/13(月) 22:06:12.90
>>702
うるさい池沼
704デフォルトの名無しさん:2012/02/13(月) 22:08:30.01
>>699 ← 昨日の夜中から荒らすネタがなくて自演で無理矢理荒らし兼自己紹介を始めた人です
705デフォルトの名無しさん:2012/02/13(月) 22:11:27.18
なんだ、自己紹介だらけで礼儀正しいいいスレじゃないか。
706デフォルトの名無しさん:2012/02/13(月) 22:28:37.19
>>699
>>694が抜けてるぞ。
707デフォルトの名無しさん:2012/02/13(月) 22:36:19.94
>>706
死ね死ね死ね死ね死ね死ね死ね死ね
708694(本物):2012/02/13(月) 22:39:59.47
>>699は俺じゃない。
人のレス番騙って荒らすとかタチが悪いな。
709694:2012/02/13(月) 23:05:20.54
>>708
偽物はお前だろ、死ねゴミクズ。
人に迷惑かけないように行方不明で死ぬんだぞ。
お前は生きてるだけで迷惑なんだから死ぬときくらい迷惑かけるなよカス。
710デフォルトの名無しさん:2012/02/13(月) 23:16:53.97
質問も何もきてないのにいきなり荒れててワラタw
711デフォルトの名無しさん:2012/02/13(月) 23:49:13.47
712694:2012/02/14(火) 00:09:53.24
すげえ。いつのまにか俺が3人もいる。
713694:2012/02/14(火) 00:10:50.66
11人いる!
714デフォルトの名無しさん:2012/02/14(火) 00:20:24.34
>>694は何でわざわざこのスレ選んで荒らし始めたんだ?
715デフォルトの名無しさん:2012/02/14(火) 00:33:25.12
Firefox のクラッシュは、Firefox 本体の不具合に限らず、外部のプログラムによる干渉、想定外のデータの読み込みや操作によって引き起こされます。
特に、Firefox と連携するプログラム (アドオンなど) や想定外の動作をするスクリプト、悪意のあるソフトウェア (マルウェア) が原因の多くを占めます。
Firefox 本体の不具合がクラッシュの原因となっている場合、たいていは最新版で修正されています。
まず、Firefox を最新版へ更新してください (初期設定では自動的に更新されます)。
Firefox を更新しても引き続き Firefox がクラッシュするようであれば、Firefox 本体の不具合ではない可能性があります。
このトラブルシューティングでは、そうした際に考えられるいくつかの原因と解決策を紹介します。
716デフォルトの名無しさん:2012/02/14(火) 00:47:02.79
>Firefox 本体の不具合がクラッシュの原因となっている場合、たいていは最新版で修正されています。
たいていとかいう単語が出てくる程頻繁にクラッシュするゴミブラウザ誰が使うんだよ
使ってるのは一部の情弱だけなんだからいちいちコピペするな
717デフォルトの名無しさん:2012/02/14(火) 00:47:40.28
>>714
さぁ、仕事でもクビになったんじゃね?w
718デフォルトの名無しさん:2012/02/14(火) 14:54:12.00
以下の二つのコマンドで出力結果が異なるのはバグでしょうか。

perl -MPOSIX=strftime -le 'print strftime ("%s", localtime)'
perl -MPOSIX=strftime -le 'print strftime ("%s", gmtime)'
719デフォルトの名無しさん:2012/02/14(火) 15:07:56.91
localtimeやgmtimeが返す値にはタイムゾーンの情報が含まれていなくて、
strftimeの%sはTZ環境変数に基づいて年月日時分秒を解釈するからそうなる。
720デフォルトの名無しさん:2012/02/14(火) 15:19:12.68
日本からの資金援助
・6000億ドル(併合から終戦まで)1965年
・8億ドル+α(経済協力金)  1965年
・40億ドル (特別経済協力金) 1983年
・100億ドル (通貨危機救済金) 1997年
・200億ドル (ウォン高救済基金)2006年
・300億ドル (ウォン安対策IMF、韓国に2.8兆円融通)2008年
その他、2002日韓ワールドカップのスタジアム建設費の融資した300億円は未返済


・併合に反対だった伊藤博文を親日派の安重根が暗殺した結果、併合が決定的となった
・朝鮮内部で親清派・親露派・親日派などが争い、親日派が勝った結果、望んで併合された
・従軍慰安婦は強制ではなく職業売春婦であり、下士官以上の収入を得ていた
・強制連行はほんの数十人で、大多数は仕事を与えてもらったか、自ら求めてやってきた出稼ぎ労働者か密航者
・創氏改名は日本で働く際に差別されないため、日本人の名前を自ら望んだ(※改名しない人もいた)
・創氏改名によって下層階級者がこぞって名門姓である「金」を名乗ったため、「金」が多数派となった
・併合後、日本によって教育やインフラへの投資が行われ、生活水準が著しく向上した
・韓国の発展は日本からの援助や併合時の置き土産(約60兆円)がなければ有り得なかった
・戦後、李承晩という独裁者が自衛隊発足前の日本から竹島を奪い取った
・日本から預かった北朝鮮への賠償金や援助金は韓国が使ってしまった
・上記の日本からの援助及び、北朝鮮への援助を使ったことを国民に正確に説明していない
・出稼ぎ労働者や密航者である同胞の在日韓国人・朝鮮人を引き取りもせず、日本に押し付けている
721デフォルトの名無しさん:2012/02/14(火) 15:53:35.47
>>718
何でもかんでも開発環境のバグにするなよゴミ
バグってるのはお前の頭だろ
722デフォルトの名無しさん:2012/02/14(火) 17:08:01.93
>>718
何でPerlの仕様も読まずに質問してんだ池沼。
723デフォルトの名無しさん:2012/02/14(火) 17:26:16.62
Firefoxってバグ直さずバージョンだけ上がっていく伝説の糞ブラウザか
724デフォルトの名無しさん:2012/02/14(火) 18:19:09.88
>>723
糞ブラウザって言うとブラウザみたいにきこえるぞ
あれはただの産廃だよ
725デフォルトの名無しさん:2012/02/14(火) 19:01:14.74
どうしてブラウザの話になってんだよ糞は>>723-724だろ
726デフォルトの名無しさん:2012/02/14(火) 20:23:56.20
>>725
よう、糞
元気か?
頭の調子はどうだ?
727デフォルトの名無しさん:2012/02/14(火) 20:50:22.08
朝鮮人がわいとるのー
728デフォルトの名無しさん:2012/02/14(火) 21:25:50.30
ちんちんかいかい
729デフォルトの名無しさん:2012/02/14(火) 21:39:01.98
>>722
POSIX仕様はPerl仕様の範疇に無い。
更に%sは拡張仕様。
730デフォルトの名無しさん:2012/02/14(火) 23:03:48.99
>>726

チンカス
731デフォルトの名無しさん:2012/02/14(火) 23:12:04.09
>>730

マンカス
732デフォルトの名無しさん:2012/02/15(水) 00:18:06.24
連想配列の中の値が全部空文字列だったときにループを飛ばすような処理を考えて

next if !grep { $_ ne q{} } values %hash;

というような書き方をしたんだがどうも直感的じゃなくてパッとしない。
どう書きなおせばいい? サブルーチンに出して適切な名前つけるべき?
733デフォルトの名無しさん:2012/02/15(水) 00:29:19.01
>>732

next if '' eq join '', values %hash;

パッと思いつくのはこれくらいかなぁ
特に見やすくなったとは思えんが・・・

サブルーチン化するかコメントでも書いておくのが正解じゃね
734デフォルトの名無しさん:2012/02/15(水) 00:54:46.31
>>733
ありがとう。joinは盲点だった。
とりあえずサブルーチンにしといて
%hashをメンバ変数にしたクラスのメソッドに移すよう
TODOリストに加えとくことにするよ。

こーゆーのって結局おざなりになっちゃうわけだけど……やれやれ。
735デフォルトの名無しさん:2012/02/15(水) 01:04:45.23
>>719
>localtimeやgmtimeが返す値にはタイムゾーンの情報が含まれていなくて、
含まれていないにも関わらず、strftime の結果が異なるのは、strftime は
引数の値を見ているのではなくて、引数部分に記述されているのが何かを
見ているってことなの?本当なの?
736デフォルトの名無しさん:2012/02/15(水) 01:55:44.13
>strftimeの%sはTZ環境変数に基づいて年月日時分秒を解釈するからそうなる。
737デフォルトの名無しさん:2012/02/15(水) 01:58:05.42
マジカルインクリメントってひらがな対応してたのかよwwwwwwwwwww
はやく教えろよwwwwwwwwwwwwwwwwwwww
738デフォルトの名無しさん:2012/02/15(水) 02:15:48.95
>>732
読みやすさとは関係ないけれど、hash が大きい場合は、grep だと最初の一個が
空でなかった場合でも全部なめてしまうので、効率よくないよ。

739デフォルトの名無しさん:2012/02/15(水) 08:26:13.78
>>722
つか、localtime/gmtimeの概念はPerl誕生よりず〜っと前からあるよ
740デフォルトの名無しさん:2012/02/15(水) 08:38:49.79
>>738
そんなん誰でも知ってるだろ低能
741デフォルトの名無しさん:2012/02/15(水) 09:38:07.45
>>732
use List::MoreUtils qw(all);

next if all { $_ eq q{} } values %hash;
742デフォルトの名無しさん:2012/02/15(水) 12:59:47.65
もういいです
743デフォルトの名無しさん:2012/02/15(水) 22:04:02.05
strftimeは引数を無視して、自分でtime関数を呼び出してTZ環境変数に
基づいて年月日時分秒を解釈するんですね。とても勉強になりました。
744デフォルトの名無しさん:2012/02/15(水) 22:39:16.33
結局ファイルの行数を得るにはどの方法が一番いいんだよハゲ
745デフォルトの名無しさん:2012/02/15(水) 22:52:41.19
wcでも呼んどけタコ
746デフォルトの名無しさん:2012/02/16(木) 00:47:39.85
「一番いい方法」なんてのはない。
好きな方法でやればいい。
それがTMTOWTDI。
747デフォルトの名無しさん:2012/02/16(木) 01:49:15.98
ただ公式faqでの回答はゴミだから参考にしてはいけない
748デフォルトの名無しさん:2012/02/16(木) 01:58:19.69
>>743
strftimeの%sがタイムゾーン分の秒数を引いてるだけじゃない?
私の手元の環境の実装だと、そんな感じだった。
749デフォルトの名無しさん:2012/02/16(木) 04:28:26.00
うん。
>>743 の人は何かひどく誤解してるようなんだけど、
何をどう誤解してるのかがよくわからない。
750デフォルトの名無しさん:2012/02/16(木) 07:59:20.52
 韓国人アイドルグループ「GREAT」が歌手活動に必要な在留資格を得ずに活動していた事件で、警視庁組織犯罪対策1課と新宿署は
15日までに、入管難民法違反(資格外活動)容疑で、20〜27歳の男性メンバー5人を書類送検した。事情を知りながらグループを来日
させ活動させた同法違反のほう助容疑で、ライブハウスを実質的に経営する韓国籍の男性社長(48)=東京都新宿区=も書類送検した。

 同課によると、メンバー5人は容疑を認め、社長も「デビューしたてのグループが日本で売れれば、見返りが入ると思った」と認めている。 

.http://news.livedoor.com/article/detail/6281304/
751デフォルトの名無しさん:2012/02/16(木) 21:11:43.94
牛丼クレープ
752デフォルトの名無しさん:2012/02/17(金) 12:38:31.97
$s =~ s/hoge(\d+)/ /g;
みたいに"hoge数字"グローバルに置換して、マッチした数字部分を全部取得する方法ってある?
753デフォルトの名無しさん:2012/02/17(金) 12:41:20.06
grepで二度手間を試みる
754デフォルトの名無しさん:2012/02/17(金) 13:05:32.96
my @match;
$s =~ s/hoge(\d+)/push @match, $1; " "/ge;
755デフォルトの名無しさん:2012/02/17(金) 22:34:02.61
得意満面の s///ge 内の push。
756デフォルトの名無しさん:2012/02/18(土) 01:50:59.38
何か変?
757デフォルトの名無しさん:2012/02/18(土) 03:50:34.97
>>754
ヘー、勉強になりまった。
758デフォルトの名無しさん:2012/02/18(土) 03:55:26.07
んにゃ、きわめて真っ当。
759デフォルトの名無しさん:2012/02/18(土) 03:55:59.40
>>754
ていうか
push @list, $1 while s/hoge(\d+)//;
って書きこみしようとしていた。
760デフォルトの名無しさん:2012/02/18(土) 13:56:55.08
ホントPerlは勉強には事欠かない言語ってことを再認識した
761デフォルトの名無しさん:2012/02/18(土) 17:50:37.78
test_dataディレクトリにいろんなログデータが入っていて
管理モードを作って、このディレクトリ名をrenameで変更したいのですが
test_dataディレクトリの中にあるファイルに誰かが書き込んでいるとき
ディレクトリ名を変更するとデータが消えたりするんですが
それを回避できるいい方法はないんでしょうか?

ディレクトリ全体をロックすると重くなるのでそれ以外の方法でです
762デフォルトの名無しさん:2012/02/18(土) 18:01:46.29
>>761
$ chmod 700 test_data
$ mv test_data [好きな名前]
$ chmod 777 [変更した名前]
763デフォルトの名無しさん:2012/02/18(土) 19:52:25.24
>>762
その方法でディレクトリ名を変更すると
変更前の現在書き込み中のファイルは途中で書き込みが中断されますか?
764デフォルトの名無しさん:2012/02/18(土) 20:11:35.27
OSは秘密ですか。そうですか。
765デフォルトの名無しさん:2012/02/18(土) 20:12:18.88
>>763
試してみればわかるんじゃないかな?
これはOS依存になると思う、Ubuntuで試した所・・・
書き込み用にファイルを開いているタイミングでパーミッション変えても書き込みは続行する。
次の書き込みからファイルオープンができなくなる。
766デフォルトの名無しさん:2012/02/18(土) 20:15:06.30
windows7でactiveperlなのでUNIXコマンドはできないです
767デフォルトの名無しさん:2012/02/18(土) 20:17:59.39
>>766
もう、スクリプトを止めたら?
ディレクトリの名前を書き換えて再開すればいいんじゃね?
768デフォルトの名無しさん:2012/02/18(土) 20:21:49.89
windowsだとオープンしているファイルがあるとディレクトリ名の変更が出来ないから、
test_dataディレクトリのファイルをいじるときはダミーのファイルをオープンする。
管理モードではディレクトリのリネームが成功するまでリトライする。
769デフォルトの名無しさん:2012/02/18(土) 21:09:46.43
つtechnet.microsoft.com/ja-jp/library/cc771672(v=ws.10).aspx
770デフォルトの名無しさん:2012/02/19(日) 01:03:13.41
mkdirで排他用のディレクトリを作る
このディレクトリがある間は、それ以降test_dataの中のファイルにアクセスできないようにする
この排他用ディレクトリができる前にtest_dataディレクトリの中のファイルに書き込んでいるプロセスがあるかもしれないので
sleepで10秒くらい待ってからrenameでtest_dataディレクトリ名を変更すれば
その書き込んでいるプロセスも終了しているだろうから安全にrenameできるだろう
771デフォルトの名無しさん:2012/02/19(日) 01:24:07.44
もうperlに閉じた話じゃなくなってるな。OSがらみ。
772デフォルトの名無しさん:2012/02/19(日) 02:39:57.73
スキルがなくて2chで質問するような低能は込み入った作業をしなさんなってこった
773デフォルトの名無しさん:2012/02/19(日) 17:37:49.27
perlでは「"0"」が偽と判断されてしまうようなんですけど、
「"0"」を真と見なすには、「length("0")」とするしかないでしょうか。
みなさんどうされてますか。
774デフォルトの名無しさん:2012/02/19(日) 17:44:59.83
そのために defined があるんでしょつりですね
775デフォルトの名無しさん:2012/02/19(日) 17:45:34.24
お前の頭の中のアルゴリズムに問題があるだけだろ

if ( $a ne "" )
776デフォルトの名無しさん:2012/02/19(日) 17:47:59.64
! を使う
777デフォルトの名無しさん:2012/02/19(日) 17:49:19.55
そのアイディアにはびっくりしました
778デフォルトの名無しさん:2012/02/19(日) 17:51:58.96
びみょうにバグってますね

正しくは
if ( $a eq "0" )
779デフォルトの名無しさん:2012/02/19(日) 18:05:00.58
windowsならば>>770がいいと思いました
780デフォルトの名無しさん:2012/02/19(日) 18:24:34.77
うるさいゴミ
781デフォルトの名無しさん:2012/02/19(日) 18:54:05.89
なに?作文?
782デフォルトの名無しさん:2012/02/19(日) 19:14:41.97
>>773
文字を数値として比較しようとするからだろ基地害
お前まじでプログラミング向いてないから失せろ異常者
783デフォルトの名無しさん:2012/02/19(日) 20:41:06.16
perlでは変数に値を代入後、格納したものが文字列なのか数値なのか
の情報が失われてしまうようなんですけど、どちらが代入されたのか
調べる方法があるのでしょうか。
みなさんどうされてますか。
784デフォルトの名無しさん:2012/02/19(日) 20:52:32.26
>>782
数値じゃなくて真偽値だろ
785デフォルトの名無しさん:2012/02/19(日) 21:14:28.53
>>783


C言語もやったことのないようなゴミがこういうレスするんだろうな。
自分が格納した値の型も忘れるような痴呆は回線切れよ。
786デフォルトの名無しさん:2012/02/19(日) 21:22:19.61
>>783
おいアホ釣り針がお前のアレなみに小さいぞ
787デフォルトの名無しさん:2012/02/19(日) 21:22:47.45
>>783
ないよ。Perlはじゃんじゃか動的に型付けするから。
文字列か数値かで処理を分けたいなら同じ変数に入れるべきじゃない。

具体的に困ってるコード見てみないとアドバイスできないけど。
788デフォルトの名無しさん:2012/02/19(日) 21:46:39.32
(($_ ^ $_) eq '0') ? print "$_: numeric\n" : print "$_: string\n" for (1, '1');

1: numeric
1: string
789デフォルトの名無しさん:2012/02/19(日) 23:10:36.14
>>783
評価の仕方で、文字だったり数字だったりでPerlさんが自動で判断してくれる。
文字とかも数字として評価する事もできるしな。
790デフォルトの名無しさん:2012/02/19(日) 23:22:25.60
>文字とかも数字として評価する事もできる

馬鹿の書いたソースでよく見かけるね
791デフォルトの名無しさん:2012/02/20(月) 00:47:49.78
utf8フラグがONになっているものが文字列。
792デフォルトの名無しさん:2012/02/20(月) 00:57:52.14
数値比較だと空データは0として見なされる
793デフォルトの名無しさん:2012/02/20(月) 01:16:22.87
($_ ^ $_) =~ /^\x00*$/ でもいいか
794デフォルトの名無しさん:2012/02/20(月) 02:55:05.85
>>789
> 評価の仕方で、文字だったり数字だったりでPerlさんが自動で判断してくれる。
> 文字とかも数字として評価する事もできるしな。
このへんがperlの便利でもあり厄介でもあるところ。
まあ慣れれば便利なことの方が多い。
795デフォルトの名無しさん:2012/02/20(月) 14:11:58.96
>>788
これはどういう仕組みなんですか?うまく動いたのですが、つまり同じ数値をxorした結果
'0' = ビット列00110000になっているという事ですよね。
調べたらperlは文字列にビット演算することができてその場合はasciiコードとして演算されるとの事でしたが、
文字列でも数字でも同じ物をxorすると0になり、結果は同じではないかと思いました。
796デフォルトの名無しさん:2012/02/20(月) 15:12:44.00
>>795
同じ数値同士のXORは数値の0
同じ文字列同士のXORは文字コード0 つまり "\x00"

>>788 の ($_ ^ $_) eq '0' は
$_ が数値なら 0 eq '0' で、文字列値なら "\x00" eq '0'
あとはわかると思うけど、eq は文字列比較なので前者の場合は左側の数値 0 は文字列 '0' に変換されてから比較されて、結果真になる。
797デフォルトの名無しさん:2012/02/20(月) 15:20:05.81
>>798
はぁ〜〜なるほど、分かりました。
文字列同士のXORで得られた数値は文字コード(という表現が適切かどうかは分かりませんが)として再評価されるんですね。
分かりやすい解説レスありがとうございました。
798デフォルトの名無しさん:2012/02/20(月) 15:22:32.68
× /2^798
○ /2^796
失礼しました
799788:2012/02/20(月) 19:40:36.19
まぁ、パズルに近いけどね。
破壊的な変数の利用を避けるべきなら、
破壊されやすい変数の利用も避けるべきで。
800age:2012/02/20(月) 21:14:30.39
webクローラのgunghoモジュール
がどうしてもインストールできない
POEエンジンインストールのところで(POE::component::*)エラーになる
解決策教えて
それか別のperl高性能クローラ教えて
801デフォルトの名無しさん:2012/02/20(月) 21:22:03.45
癌呆の略字を知らないモグリかよ
802デフォルトの名無しさん:2012/02/20(月) 21:22:16.89
馬鹿には無理
803age:2012/02/20(月) 21:39:20.56
そんな子といわずに教えて
804デフォルトの名無しさん:2012/02/21(火) 00:34:24.86
恥かしくてもう出てこられない785-787。
805デフォルトの名無しさん:2012/02/21(火) 01:26:31.73
標準入力を最後まで読み取る必要があるんだけど処理はしない。
とりあえず while (<>) {} とか書いてるが、もっとスマートな書き方ないかな?
806デフォルトの名無しさん:2012/02/21(火) 01:35:09.55
処理しないんなら読みとる必要も無いだろ
807デフォルトの名無しさん:2012/02/21(火) 01:52:13.17
なんらかのプログラムの出力を吐ききらせたいとかそういうのじゃないのかね
808デフォルトの名無しさん:2012/02/21(火) 01:53:58.95
^Dだか^Zが来るまで読み捨てたいのかね。
@_ = <>;
とか。スマートとは思わんが。
809デフォルトの名無しさん:2012/02/21(火) 02:26:19.84
低能は黙ってろ
810デフォルトの名無しさん:2012/02/21(火) 02:37:16.10
プロさんちーっす
0 while<>;
はどうかと思った
811デフォルトの名無しさん:2012/02/21(火) 03:20:20.57
>>806
procmailのフィノレター書いてるですが、最後まで読んでやらんと
パイプ新だがなって怒られるんです(´;ω;`)

>>808
それメモリ喰らいません?
undef = <>;的な書き方ができたらウフーだなとかオモテますた。

>>809
ごめんなさいぃぃぃ

>>810
かっこぇぇ惚
812デフォルトの名無しさん:2012/02/21(火) 03:20:52.14
>>807
愛してます☆
813デフォルトの名無しさん:2012/02/21(火) 04:18:56.02
(undef) = <STDIN>;

() = <STDIN>;
814デフォルトの名無しさん:2012/02/21(火) 04:25:31.57
>>813
ウフー! ウフー! ウフー! ウフー! ウフー!

自分の中ではこれFAなりでマジ惚れ危険!
さんきゅーさんきゅーありがとベリーマッチ

関係ないけど皆さんやっぱ<>より<STDIN>推奨?
815デフォルトの名無しさん:2012/02/21(火) 05:18:06.37
この場合は読み込み元が標準入力じゃないと成立しないんだから、
@ARGV の有無で読み込み元が変わる <> よりも <STDIN> のほうが間違いないでしょ。
816デフォルトの名無しさん:2012/02/21(火) 05:33:53.62
確かに相手が自前じゃないわけだし、なに食わされるかわかんないですもんね…
本当に遅くまで、もとい早朝までありがとうございました。真剣感謝です。
817デフォルトの名無しさん:2012/02/21(火) 05:36:15.49
そんなトリッキーな書き方が許されるのは中学生までだよねー
818デフォルトの名無しさん:2012/02/21(火) 10:28:33.57
perlのどこらへんがトリッキーじゃないんだ
奇をてらいたくなきゃあ別のクソでもいじくりまわしてろ
819デフォルトの名無しさん:2012/02/21(火) 12:15:17.39
>>818
全部トリッキーに見えるのか。
どうかしてるよ、お前。
820デフォルトの名無しさん:2012/02/21(火) 17:56:20.52
>>818
Perlごときで挫折したプログラミング不適格者の、典型的な言い訳だな。
体育会系会社に入って営業でもやってろw
821デフォルトの名無しさん:2012/02/21(火) 19:52:44.30
" () = " は一応、リストコンテキストで呼び出すための慣用句ってことになってる。

http://perldoc.jp/docs/perl/5.10.0/perldata.pod#List32value32constructors
822デフォルトの名無しさん:2012/02/21(火) 23:10:03.46
(<>);
823デフォルトの名無しさん:2012/02/21(火) 23:21:22.49
(i)
824デフォルトの名無しさん:2012/02/22(水) 00:55:04.05
トリッキーではないわけね
825デフォルトの名無しさん:2012/02/22(水) 00:57:47.51
>>824
アホか?
フトンの中でクソしてさっさと寝ろよ
826デフォルトの名無しさん:2012/02/22(水) 01:15:09.20
フトンの中でクソなんて発想が許されるのは三歳(さんちゃい)までだよねー
827デフォルトの名無しさん:2012/02/22(水) 09:38:07.34
×さんちゃい
○ちゃんちゃい
828デフォルトの名無しさん:2012/02/22(水) 23:44:52.77
('<>')
829デフォルトの名無しさん:2012/02/23(木) 01:24:50.25
while ( my $hoge = shift @argv )やwhile( my $it = $it->next) ってそのうちundefになって終了するはずなんですが、
while(defined( my $hoge = shift @argv))のようにdefinedを使ってるコードが多いように思います。なぜなんでしょうか。
830デフォルトの名無しさん:2012/02/23(木) 01:40:11.33
>>829
@argvの中に数字の0とか空文字が入る場合、前者だとそこで止まっちゃう。
あとイテレータに最後のundefがあるとは限らないよ。
831デフォルトの名無しさん:2012/02/23(木) 02:12:06.81
>>828
正面向きのヒヨコみたい
832デフォルトの名無しさん:2012/02/24(金) 01:19:58.30
>>830
ほんとですね、ありがとうございます
833デフォルトの名無しさん:2012/02/24(金) 13:13:11.47
うるさいゴミ
834デフォルトの名無しさん:2012/02/24(金) 14:08:16.64
>>833
なるほど、自分がついて行けない話の時はそうなるのか
産廃並みの脳味噌だなw
835デフォルトの名無しさん:2012/02/24(金) 21:56:49.58
perl -E '@a = <STDIN>; eval "@a"'
これをもっと短くすることをお願いできないでしょうか?
836デフォルトの名無しさん:2012/02/24(金) 22:34:19.63
>>835
何がしたいのそれ
echo 'print "foo";' | perl
837デフォルトの名無しさん:2012/02/24(金) 23:17:25.64
選択中のテキストに対してシェルコマンドを実行する事が出来るアプリ(Meadow)を使って
perl -pel "s/hoge/ほげ/"
というような感じのことをしてみたのですが
perlスクリプト書いて選択して実行してみたいなと思ったところです。perl だけでは動きませんでした。

今はこうやってます。(少し短くなった)
perl -e "$/=undeff; eval <>"
838デフォルトの名無しさん:2012/02/24(金) 23:56:04.53
パッパッパパッパぁ〜Perlライス
839デフォルトの名無しさん:2012/02/25(土) 00:14:16.96
>>837
俺はvimしか使わんからEmacsの流儀は知らんけど、なんかやり方ありそうよ。
http://maruta.be/intfloat_staff/46

vimなら行選択して":!perl"でもしてやればカレントバッファに結果が出る。
840デフォルトの名無しさん:2012/02/25(土) 00:23:42.23
>>839
Linux上ではperlだけで動くので多分WindowsとMeadowのせいなんだと思います。
わざわざ調べてくださってありがとうございます!
841デフォルトの名無しさん:2012/02/25(土) 19:21:23.07
文字列を8もじずつ分割して配列にしたいんだけど
どうしたらかっこういいですか?
842デフォルトの名無しさん:2012/02/25(土) 19:36:19.69
そのかっこいい方法は、
最速ですか?
843デフォルトの名無しさん:2012/02/25(土) 19:56:46.61
>>841ゴミは書き込みするなって
844デフォルトの名無しさん:2012/02/25(土) 20:05:36.52
>>842
格好いい=最速、最速=格好いい
昔から決まってんだろ
845デフォルトの名無しさん:2012/02/25(土) 20:08:55.00
最速の方法は、
文字へのポインタを8づつ増加させながら
配列に加えていく方法だろうね。
846デフォルトの名無しさん:2012/02/25(土) 20:19:58.87
my @div = $str =~ /.{1,8}/g ;

これ以上短くできンの?
847デフォルトの名無しさん:2012/02/25(土) 20:54:05.67
できたよ。
関数作ればコードも短く
意味もわかりやすくなる。


my @div = splitn($str,8);
848デフォルトの名無しさん:2012/02/25(土) 21:25:21.82
>>847
それってホントに動作の意味が分かりやすくなんの?
関数のホントの意味知らないと、動作が絶対に分からないような作りになってね?
分かりやすいってのはウソで、実はそれ、説明性が低いだろ。
849デフォルトの名無しさん:2012/02/25(土) 21:36:22.83
my @div = unpack('(A8)*', $str);
850デフォルトの名無しさん:2012/02/26(日) 05:45:04.09
>>849
                 ,r=''""゙゙゙li,
      _,、r=====、、,,_ ,r!'   ...::;il!
     ,r!'゙゙4       `'ヾ;、, ..::::;r!'゙
    ,i{゙‐'_,,_         :l}..::;r!゙
.  ,r!'゙4 4-ー‐‐==、;;;:....   :;l!:;r゙
 ,rジ          `~''=;;:;il!::'li
. ill゙  ....         .:;ll:::: ゙li
..il'   ' ' '‐‐===、;;;;;;;:.... .;;il!::  ,il!
..ll          `"゙''l{::: ,,;r'゙
..'l!       . . . . . . ::l}::;rll(,
 'i,  ' ' -=====‐ー《:::il::゙ヾ;、
  ゙i、            ::li:il::  ゙'\
  ゙li、      ..........,,ノ;i!:....    `' 、  ∧__∧
   `'=、:::::;;、:、===''ジ゙'==-、、,,,__ `'(・∀・ )
     `~''''===''"゙4        ~`''ー(   ))
                         u~u  good job
851デフォルトの名無しさん:2012/02/26(日) 12:34:25.82
perlのマニュアルでわかりやすいのってある?
省略したときに$_とか$@を使うのか
引数の中身を破壊するのかしないのか
戻り値が$_とか$@に入るのか
ってのがいつもわからない
852デフォルトの名無しさん:2012/02/26(日) 12:57:09.78
以下のsub.plは単体で呼び出すとうまく動くのですが、main.plから呼び出すと
|$ perl sub.pl を実行します
|"\x{0436}" does not map to cp932. "\x{042c}" does not map to cp932. "\x{00b5}" does not map to cp932. ...
となってしまいます。何故化けてしまうのでしょうか?
やりたかったこと(標準出力を一時的に切り替えたい)はselectを使うことで解決したのですが、
以下がうまく行かない理由が分からず、分かる方がいらしたら教えていただきたいです。
両ファイルともutf-8で保存しています。windows環境です。

#### main.pl ####
use strict;
use utf8;
use Encode;
binmode STDIN, ":encoding(cp932)";
binmode STDOUT, ":encoding(cp932)";
binmode STDERR, ":encoding(cp932)";
my $command = "perl sub.pl";
print "> $command を実行します\n";
print decode("cp932", `$command`);

### sub.pl ####
use strict;
use utf8;
binmode STDIN, ":encoding(cp932)";
binmode STDOUT, ":encoding(cp932)";
binmode STDERR, ":encoding(cp932)";
open DEF_STDOUT, ">&STDOUT";
open STDOUT, ">:encoding(cp932)", "./test.txt" || die "ファイルが開けません: $!";
print "testです";
close STDOUT;
open STDOUT, ">&DEF_STDOUT";
binmode STDOUT, ":encoding(cp932)"; # この行を消すと、main.plの実行は上手くいくのですが、単体実行でwide character in print 化けます。
print "生成しました\n";
853デフォルトの名無しさん:2012/02/26(日) 13:33:21.59
printfで文字列に全角文字が混じった時に、
全角は2文字分の幅として認識させるにはどうすれば

ぐぐると、やたら面倒そうなのとか、根本から変えちゃうようなのしか見つからない
854デフォルトの名無しさん:2012/02/26(日) 13:55:58.80
>>853
罫線問題もあるので、極めて難しい超難問ですお
855デフォルトの名無しさん:2012/02/26(日) 14:23:31.52
じゃあ、罫線は無視で
856デフォルトの名無しさん:2012/02/26(日) 14:26:05.67
罫線問題って呼び方は聞いたことないけど、「曖昧な文字幅」の扱いのことだよね。
Winユーザでもギリシャ文字が場合によって半角だったり全角だったりなんてのは見たことあると思うけど。
857デフォルトの名無しさん:2012/02/26(日) 14:34:36.92
ハングルは半角か全角か
858デフォルトの名無しさん:2012/02/26(日) 14:51:51.24
こんなのでよくね?

use utf8;

sub count {
my $str = shift;
my @chars = split(//,$str);
my $kigou = quotemeta("!@#$%^&*()_+|~-=\`[]{};:'\",./<>?");
my $count = 0;
for (@chars) {
$count += /[a-zA-Z0-9]|$kigou/ ? 1 : 2;
}

return $count;
}

print count("1234ほげほげ"); # =>12
859デフォルトの名無しさん:2012/02/26(日) 15:16:54.51
>>852
俺の環境(Ubuntu)では文字化けしなかった。
cp932の所は環境に合わせるためにutf-8に書き換えたがな。

ってか、ちゃんと文字のencodeとdecodeを理解するべきだろ・・・
魔法のおまじないのように「binmode STDERR, ":encoding(cp932)";」こういうの使わない方がいいと俺は思うけど。
860デフォルトの名無しさん:2012/02/26(日) 15:19:44.17
decode('cp932', sprintf("%-10s", encode('cp932', $str) ) );

結局、こんなんにしました
861デフォルトの名無しさん:2012/02/26(日) 15:23:22.06
>>860
なんとひどい・・・
無駄なオーバーヘッドかかりまくり・・・
センスの欠片も感じられない、もっと本読めマジで本読め
862デフォルトの名無しさん:2012/02/26(日) 15:36:02.70
>>861
我流でやってきたので・・
おすすめの本があれば教えて下さい。
863デフォルトの名無しさん:2012/02/26(日) 15:45:40.64
>>862
自分で探せゴミクズ
そうやってすぐ他人にきくからゴミみたいなコード書くんだろ
ゴミコードをネットで晒して恥ずかしくないとか頭の中どうなってんだこの基地害
864デフォルトの名無しさん:2012/02/26(日) 15:51:42.39
お前がどんなにゴミだクズだと罵ったところで、>>862は人として最低限のプライドもないから無駄だよ。
865デフォルトの名無しさん:2012/02/26(日) 15:51:51.45
バイナリでいいやん
866デフォルトの名無しさん:2012/02/26(日) 16:04:46.11
>>862
俺が読んでた本は、もう随分古い本だからな・・・
同じ本を薦めても情報が古過ぎる、新しい情報はネットから得てるし
amazonで適当に探して評価読んで良さそうなのを一冊見つければいいんじゃないか?
867デフォルトの名無しさん:2012/02/26(日) 16:19:33.07
ネットからは得られないぞ
入門の情報はネットで十分だけど、ノウハウ的なものは金を出さないと得られない
868デフォルトの名無しさん:2012/02/26(日) 16:27:51.02
応急の策としてなら>>860は別にそれほど悪くない。
速度的にもutf8のまま真面目にFULLWIDTH/HALFWIDTHを判定していくよりは速いぐらいかもしれない。
869デフォルトの名無しさん:2012/02/26(日) 16:56:03.34
漏れが一切無いというのが安心できるな
シフトJISの時と全く同じ動作を得たいなら、シフトJISにするしかない
870デフォルトの名無しさん:2012/02/26(日) 17:03:42.35
入力も出力もシフトJISなら処理もシフトJISで行ったほうがいいでしょ
utf8に変換する必要性ないでしょ
871デフォルトの名無しさん:2012/02/26(日) 17:07:44.22
クソ性器表現のため処理はutfだろふざけんなks
872デフォルトの名無しさん:2012/02/26(日) 17:09:37.67
もう頭痛くなってきたw
いい感じにひどいですね
873デフォルトの名無しさん:2012/02/26(日) 17:31:21.20
うるさいゴミ
874デフォルトの名無しさん:2012/02/26(日) 17:37:25.00
>>852
### sub.pl ####
use strict;
use utf8;
binmode STDIN, ":encoding(cp932)";
# binmode STDOUT, ":encoding(cp932)";
binmode STDERR, ":encoding(cp932)";
open DEF_STDOUT, ">&STDOUT";
open STDOUT, ">", "./test.txt" || die "ファイルが開けません: $!";
binmode STDOUT, ":encoding(cp932)";
print "testです";
close STDOUT;
open STDOUT, ">&DEF_STDOUT";
binmode STDOUT, ":encoding(cp932)";
print "生成しました\n";
875デフォルトの名無しさん:2012/02/26(日) 17:52:22.23
ピログラムも知らないど素人向けでもないのにマルチバイト文字でメッセージ出す奴は基地害
876874:2012/02/26(日) 18:01:58.62
それと多分、
open STDOUT, ">", "./test.txt" or die "ファイルが開けません: $!";
877デフォルトの名無しさん:2012/02/26(日) 18:40:37.78
そこでjperlなわけか
878852:2012/02/26(日) 19:09:09.34
>>859,874
レス有難うございます。
標準出力を切り替える前にも出力するためその行はコメントアウトできないです。

色々試してみたところ、デフォルトのSTDOUTを1度rawにするとsub.pl、main.pl共々上手く行きました。
binmode STDOUT, ":raw";
open DEF_STDOUT, ">&STDOUT";

重ねがけのような状態になっていたのでしょうか・・?
しかしsub.pl単体では上手く動いていたので謎です。
結局>>852の # この行を消すと、main.plの実行は上手くいくのですが、単体実行でwide character in print 化けます。
の理由は分からず。
Ubuntuの方が試してくださった所どちらも上手く動いたとの事なので、
Windowsでの挙動があやしいということなのかもしれません。
879デフォルトの名無しさん:2012/02/26(日) 19:10:56.18
アホかよ……
cp932なんだからwinでためさねーと意味ないじゃん
880874:2012/02/26(日) 19:36:49.24
>>878
use utf8;

binmode(STDOUT, ":encoding(cp932)");
binmode(STDOUT, ":encoding(cp932)");
layer(*STDOUT);
print "あああ";

sub layer { warn(join("/", PerlIO::get_layers($_[0])), "\n") }

これでアウトだしPerlIOは良く分からん。
確かに:rawを入れると直るね。
881デフォルトの名無しさん:2012/02/26(日) 19:47:34.18
cp932でエンコードしたものをもう一度cp932でエンコードしようとしているんだから上手く動かないのは当然じゃないの?
882デフォルトの名無しさん:2012/02/26(日) 20:12:07.34
だから初心者はjperl使えと口が酸っぱくなるほど、、、
883874:2012/02/26(日) 20:20:55.64
>>881
ドキュメントに書いてくれええと思う。
884デフォルトの名無しさん:2012/02/26(日) 20:37:36.28
cp932で二重エンコードは単なる間違いだけど、
utf-8で二重にやっちゃうのは頻繁に見る
そしてフラグを剥がして解決する
885デフォルトの名無しさん:2012/02/26(日) 20:58:17.86
utf-8で二重にやっちゃうのも単なる間違いだからw
886デフォルトの名無しさん:2012/02/26(日) 21:01:31.55
そろそろ1レスでわかるやつがペーストされるいよかん。
887デフォルトの名無しさん:2012/02/26(日) 22:46:15.18
encode済みの文字列をencodeできてしまうのはフェイルセーフが欠如してるとしか思えんな
フラグ見れるのにそれ見ないんだぜ?
888デフォルトの名無しさん:2012/02/26(日) 23:23:03.22
そんなもん言語仕様でどうにかしろよ
889デフォルトの名無しさん:2012/02/26(日) 23:26:38.58
言語仕様までいかなくてもEncodeモジュール側でなんとかできそうなもんだが…
問い合わせてみようかな
890デフォルトの名無しさん:2012/02/26(日) 23:57:50.15
それよか、ひとくるみしたらどうだ?おれならそうする
891デフォルトの名無しさん:2012/02/27(月) 00:21:44.60
>>852のsub.plは、二度がけしているにもかかわらず
windows7のコマンドプロンプトだと化けないな

use utf8;
binmode STDOUT, ":encoding(cp932)";
open DEF_STDOUT, ">&STDOUT";
open STDOUT, ">&DEF_STDOUT";
binmode STDOUT, ":encoding(cp932)";
layer(*STDOUT);
print "生成しました\n";
sub layer { warn(join("/", PerlIO::get_layers($_[0])), "\n") }

>perl sub.pl
unix/crlf/encoding(cp932)/utf8/encoding(cp932)/utf8
生成しました
892デフォルトの名無しさん:2012/02/27(月) 01:12:18.48
甘やかすな
二重encodeは問答無用で青画面
893デフォルトの名無しさん:2012/02/27(月) 01:27:30.39
Win95並みのクソOSだなそれ
894デフォルトの名無しさん:2012/02/27(月) 02:39:42.45
http://d.hatena.ne.jp/perlcodesample/20091118/1246679588

ここ読め、かなり良いから。
変な使い方するな、理解してもないのに変な楽の仕方するな
895デフォルトの名無しさん:2012/02/27(月) 06:48:35.60
とはいうもののクソの口から本当の楽の仕方は出てこない、
書かれることもない、

なぜなら>>894の能力が低いから
896デフォルトの名無しさん:2012/02/27(月) 06:57:34.31
use utf8を書かないとうまく動かない時ってどんな時だ?
897デフォルトの名無しさん:2012/02/27(月) 08:05:06.77
>>896
ASCII 以外が必要なほぼすべての時。
898デフォルトの名無しさん:2012/02/27(月) 13:52:22.69
>>895
それめっちゃ分かる。
お前の能力めっちゃ低いもんな。
899デフォルトの名無しさん:2012/02/27(月) 14:04:23.67
なぜなら俺はイタリアンじゃないから
900デフォルトの名無しさん:2012/02/27(月) 19:39:56.47
アクセス解析で環境変数を取得するときに、リファラーに井桁が入ってると変数に代入されず
リファラーが取得できなくなってしまうのはどうすれば解決できますか
901デフォルトの名無しさん:2012/02/27(月) 19:58:34.20
>>900
こちらへどうぞ。

Perlコーディング初心者質問スレ Part 63
http://kohada.2ch.net/test/read.cgi/php/1315559509/
902デフォルトの名無しさん:2012/02/27(月) 20:06:31.96
>>901
誘導ありがとうございます。失礼しました。
903デフォルトの名無しさん:2012/02/27(月) 20:14:14.61
勢いを見てもこのスレがPHPより人気なのが分かる
904デフォルトの名無しさん:2012/02/27(月) 20:16:12.30
つーかPHPの質問スレ自体がなくてワラタw
PHP厨はこの世に存在しないのと一緒w
905デフォルトの名無しさん:2012/02/27(月) 20:21:55.19
普通にたくさんあるだろ
906デフォルトの名無しさん:2012/02/27(月) 20:23:33.91
それがなかったんだよw
バトルロワイヤルとかHello Worldを書き込むとかそういうスレしかなかったwww
907デフォルトの名無しさん:2012/02/27(月) 20:24:47.12
>>905
つーか一覧でCtrl+Fですぐ調べられるから見てみろってwwww
908デフォルトの名無しさん:2012/02/27(月) 20:31:15.49
【Perl,PHP】LLバトルロワイヤル21【Ruby,Python】
【perl->php】お願いがあるんだ
PHP使ってる奴らが憎いPerl>>>PHP
PHPを使って2ちゃんねるにHello Worldを書き込む
php使ってる奴はアホ、これからはRuby on Rails!


すさまじい
怨念が渦巻いている
909デフォルトの名無しさん:2012/02/27(月) 20:36:02.02
やっぱりPerlだよな。
PHPとか言語仕様が糞なうえにセキュリティホール付でリリースするからマジないわ。
ゴミすぎてPerlとの比較対象にすらならない。
PHP選んでるって時点で情弱。
馬鹿にされたくなかったらPerlを選んでおくべき。
910デフォルトの名無しさん:2012/02/27(月) 20:53:58.47
数えきれないほどあるけど?
【PHP】下らねぇ質問はID出して書き込みやがれ 116
http://kohada.2ch.net/test/read.cgi/php/1330224598/
PHP関連の書籍 第7版
http://kohada.2ch.net/test/read.cgi/php/1324952317/
IDにPerlが出たら神!PHPが出たらシメジ Part32
http://kohada.2ch.net/test/read.cgi/php/1303228484/
【PHP】フレームワーク CakePHP 13ホール目【v2.0】
http://kohada.2ch.net/test/read.cgi/php/1320768310/
【PHP】Yii Framework
http://kohada.2ch.net/test/read.cgi/php/1291909271/
【PHP】PHPフレームワーク総合スレ15
http://kohada.2ch.net/test/read.cgi/php/1292118428/
PHPでオークションサイトを作ろう!
http://kohada.2ch.net/test/read.cgi/php/1170317609/
[PHP][フレームワーク]CodeIgniter Part2
http://kohada.2ch.net/test/read.cgi/php/1299595202/
【PHP】ビューと業務ロジックを混在させる【PHP】
http://kohada.2ch.net/test/read.cgi/php/1254298092/
【初心者】励ましあいながらサイト製作【PHP】
http://kohada.2ch.net/test/read.cgi/php/1125711034/
Perl VS PHP
http://kohada.2ch.net/test/read.cgi/php/982591467/
PHP>Java>>>超えられない壁>>>ASP>Perl
http://kohada.2ch.net/test/read.cgi/php/1178094278/
Java VS PHP
http://kohada.2ch.net/test/read.cgi/php/1177676518/
symfony PHPフレームワークpart2
http://kohada.2ch.net/test/read.cgi/php/1268753684/
【PHP】鏡の国2ch bbs
http://kohada.2ch.net/test/read.cgi/php/1234765454/
911デフォルトの名無しさん:2012/02/27(月) 21:28:19.27
>>909 「セキュリティホール付でリリース」
コミュニティーがたよりない
912デフォルトの名無しさん:2012/02/27(月) 21:53:31.46
PHPにはだんこがいみたいなひといるの?
913デフォルトの名無しさん:2012/02/28(火) 00:05:00.57
質問なのですがPerlでこういうサイトって作れますか?
ttp://findrjp.com/formen/
これはPHPだと思うんですけど
作るとしたらelsifで作る感じでしょうか?
こういうのってすぐ作れますか?
914デフォルトの名無しさん:2012/02/28(火) 00:43:21.62
>>913
>>1を100回読んでから出直せゴミクズ
915デフォルトの名無しさん:2012/02/28(火) 00:52:16.20
>Perlでこういうサイトって作れますか?
ttp://findrjp.com/formen/
お前は言語を何だと思ってんだ?
PerlだろうとCだろうとC++だろうとシェルスクリプトだろうとできるだろ。

>これはPHPだと思うんですけど
「思う」じゃねーよ、Perlだったらどうすんだ?

>作るとしたらelsifで作る感じでしょうか?
そりゃ条件分岐くらい使うでしょうよ。

>こういうのってすぐ作れますか?
すぐの意味が分からないが仕様書出してもらえれば寝起き2時間で作れるよ。
文字通り朝飯前。
916デフォルトの名無しさん:2012/02/28(火) 01:36:50.46
>>915
PHPとかperlってどこで判断するんですか?
結果ページのurlにはphpって入ってますけど
917デフォルトの名無しさん:2012/02/28(火) 02:35:17.55
死ねよ上げんな池沼
918デフォルトの名無しさん:2012/02/28(火) 04:09:04.78
>>916
鯖管に聞かなきゃ分からない
一つの言語だけでできてるという保証もなし
精度向上がどうのって書いてあったから
バックエンドではcで書いたややこしいシステムが動いてるかもよ
919デフォルトの名無しさん:2012/02/28(火) 10:15:15.72
ひとつ言える事は・・・
吐いてるHTMLは死ぬほど汚い、素人が作った物だろって事。
920デフォルトの名無しさん:2012/02/28(火) 10:16:26.01
寝起きで朝飯前食う前にやっつけで作ったんじゃね?
921デフォルトの名無しさん:2012/02/28(火) 10:24:20.67
ステマそのものじゃねーか。つまらん。
922デフォルトの名無しさん:2012/02/28(火) 18:33:03.38
CGIの話はWebProg板でやれゴミ
923デフォルトの名無しさん:2012/02/28(火) 19:56:56.41
>>919
さすがプロの方
ありがとうございます
924デフォルトの名無しさん:2012/02/28(火) 20:59:01.76
バーカ
925デフォルトの名無しさん:2012/02/29(水) 21:56:03.52
阿呆
926デフォルトの名無しさん:2012/02/29(水) 22:01:52.56
$a = time;

for( $i = 0; $i < 10000; $i++ ){
$x = $x + 1;
}

$b = time;
$c = $b - $a;

print "$c";
927デフォルトの名無しさん:2012/03/01(木) 04:13:20.21
my $a = time;
my $x = 0;
$x += 1 for 0 .. 9999;
print time - $a, "\n";
928デフォルトの名無しさん:2012/03/01(木) 07:16:10.31
ミリ秒まで計測できるよう改良してあげたぞ

my $a = time;
my $x = 0;
for(my $i = 0; $i < 10000; $i++ ){ $x += 1; }

my $b = time;
$c = rand($b - $a);

print $c. "\n";
929デフォルトの名無しさん:2012/03/01(木) 09:19:19.20
文字列を改行つきで表示させたいとき、
print "$c\n";
print $c ."\n";
のどちらが良い方法ですか?
個人的には上の方法が好きですが、特に理由はありません。
930デフォルトの名無しさん:2012/03/01(木) 09:26:06.30
>>929
俺は下の方が好き。
Perlは変数がダブルクォートの中にあっても展開してくれるけど、
他の言語では展開しない物の方が多い。
Perlでいう全部シングルクォートと同じ感じ。

気持ち悪いから下の方法を取ってるだけで、それ以上深い意味はない。
931デフォルトの名無しさん:2012/03/01(木) 09:55:32.17
print文ならむしろカンマを使うね
print $c, "\n";
932デフォルトの名無しさん:2012/03/01(木) 11:52:40.78
. で接続すると、括弧が余計に必要になったりするから嫌
933デフォルトの名無しさん:2012/03/01(木) 12:16:53.96
好みって事で、どうでも好きにしろよ
934デフォルトの名無しさん:2012/03/01(木) 12:27:40.83
print "$c\n";
print $c ."\n";
新たに文字列が作られる。

print $c, "\n";
新たな文字列は作られない。

したがって,推奨と信じてきたが違うのか?
935デフォルトの名無しさん:2012/03/01(木) 12:30:27.47
mes myText + "\n"
936デフォルトの名無しさん:2012/03/01(木) 12:58:42.67
>>934
推奨かどうかはともかく、コピーが作られなくてメモリに優しいというのは多分合ってるよ。
http://perldoc.jp/docs/perl/5.10.1/perlfaq3.pod#How32can32I32make32my32Perl32program32take32less32memory63
937デフォルトの名無しさん:2012/03/01(木) 13:53:13.26
コンマ使えば変数分のメモリが節約できるのか〜
変数の内容にもよるし微々たるものな事も多いだろうけど、
でも少しでも軽くするのはプログラマの努めだし、
軽くするために特にトリッキーな事になってる訳でもないし、
これからは積極的にコンマ使っていくよ教えてくれてありがとう。
938デフォルトの名無しさん:2012/03/01(木) 14:29:44.49
>>937の内容に可読性に関する話が一切出ていない。恐らく真性の基地害。
保守性を無視した「自分さえ分かれば良い」コードを書くゴミの典型。プログラムをする資格のそもそもない人種。
それでプログラマの努めとか言っちゃってるのは恥さらし通り越して最早プログラマに対して失礼。
ほんとクズだなこいつ。
939デフォルトの名無しさん:2012/03/01(木) 14:34:23.67
コンマなんか使うと可読性が落ちる(キリッ
940デフォルトの名無しさん:2012/03/01(木) 14:38:37.11
そんなに軽くしたいならPerlやめてCで書けばいいんじゃね?
941デフォルトの名無しさん:2012/03/01(木) 14:48:09.89
>>937は馬鹿だからそういう発想はできない。
942デフォルトの名無しさん:2012/03/01(木) 15:03:48.12
@a = (1, 2);
print @a . "\n";
print @a , "\n";

みたいな時に挙動が変わる
943デフォルトの名無しさん:2012/03/01(木) 15:04:58.33
何だ、この流れ。
944デフォルトの名無しさん:2012/03/01(木) 15:05:43.83
>>938
> 軽くするために特にトリッキーな事になってる訳でもないし、
これが可読性に言及していると読み取れないお前は、ディスレクシアの疑いが高い。
専門医の診察を受けることを勧める。
もっとも診察受けても治らないけど、この業界文章読み取る能力が欠如してるとつらいぞ。
945デフォルトの名無しさん:2012/03/01(木) 15:15:57.49
>>938
>>941
どうしてエキサイトしてるのか意味がわからないw
946デフォルトの名無しさん:2012/03/01(木) 15:16:41.19
この業界はどんな条件でもつらい
自然言語でプログラムが組めるようになるまでは離れるのが吉
947デフォルトの名無しさん:2012/03/01(木) 15:19:34.15
可読性の高いトリッキーなコードと
可読性の低いトリッキーなコードあるよな
948デフォルトの名無しさん:2012/03/01(木) 15:22:04.76
say $c;
949デフォルトの名無しさん:2012/03/01(木) 15:30:06.89
>>944は可読性の低いトリッキーなコードしか見たことないんじゃね?
950デフォルトの名無しさん:2012/03/01(木) 15:32:45.09
カスども仲良くしろ
951デフォルトの名無しさん:2012/03/01(木) 15:34:16.52
>>949
ヒント: 類は友を呼ぶ
>>944みたいな文章しか書けないような奴が集まってみろよ
その中に可読生の高いトリッキーなコード書ける奴がいると思うのか
952デフォルトの名無しさん:2012/03/01(木) 15:35:35.67
何にキレてるのか意味がわからない・・・
そんなにコンマが嫌いなのかw
コンマ入ると読めなくなる程度の奴らなのかw
953デフォルトの名無しさん:2012/03/01(木) 15:47:05.05
>>949
キミ、多分ディスレクシアだよ。つらいだろうが自分の特性を受け入れる事が大事。

>>951
煽るときは漢字間違えないようにしろよ。あと、お前の過去に何があったか知らな
いが、コンマは噛みつかないからそんなに怖がる必要はないぞ。
954デフォルトの名無しさん:2012/03/01(木) 15:49:36.00
そもそもカンマってなんであるんだ?構文解析上必要なのか疑問。(←わざわざカンマで区切らずともスペースで区切られてるだろ)
print $s "\n"; これでも十分区切りはわかる。カンマは不必要。ではなぜそうなっていないのか、逆にカンマが必要な場面とはどこか。
print 3 + 5, 8; こういう場合だな。二項演算子が混じってくるケース。カンマを端折ってprint 3 + 5 8とすると区切りが分からなくなる。
ただカンマの代わりに括弧で括ってprint (3 + 5) 8とすればこれで区切りは分かる。カンマは入らない。

項の区切りにカンマを入力しなくていいが、二項演算子使う場合はカッコでくくるコスト>項の区切りに毎回をカンマ入力するコスト

だと思うんだが
955デフォルトの名無しさん:2012/03/01(木) 15:52:00.19
もうLispとかHaskellやれよ。
なんでPerlだけが噛みつかれるんだよ…
956デフォルトの名無しさん:2012/03/01(木) 15:55:20.93
>>954

     /: : : : : __: :/: : ::/: : ://: : :/l::|: : :i: :l: : :ヽ: : :丶: : 丶ヾ    ___
     /;,, : : : //::/: : 7l,;:≠-::/: : / .l::|: : :l: :|;,,;!: : :!l: : :i: : : :|: : ::、  /     ヽ
    /ヽヽ: ://: :!:,X~::|: /;,,;,/: :/  リ!: ::/ノ  l`ヽl !: : |: : : :l: :l: リ / そ そ お \
   /: : ヽヾ/: : l/::l |/|||llllヾ,、  / |: :/ , -==、 l\:::|: : : :|i: | /   う う  前  |
.   /: : : //ヾ ; :|!: イ、||ll|||||::||    ノノ  イ|||||||ヾ、 |: ::|!: : イ: ::|/   な 思 が
   /: : ://: : :ヽソ::ヽl |{ i||ll"ン    ´   i| l|||l"l `|: /|: : /'!/l     ん う
 ∠: : : ~: : : : : : : :丶ゝ-―-      ,  ー=z_ソ   |/ ハメ;, :: ::|.   だ ん
   i|::ハ: : : : : : : : : : : 、ヘヘヘヘ     、  ヘヘヘヘヘ /: : : : : \,|.   ろ な
   |!l |: : : : : : : : :、: ::\    、-―-,      / : : :丶;,,;,:ミヽ   う  ら
     丶: :ハ、lヽ: :ヽ: : ::\__  `~ "      /: : ト; lヽ)   ゝ
       レ `| `、l`、>=ニ´        ,  _´ : :} `   /
         ,,、r"^~´"''''"t-`r、 _  -、 ´ヽノ \ノ   /    お ・
       ,;'~  _r-- 、__     ~f、_>'、_         |  で  前 ・
      f~  ,;"     ~"t___    ミ、 ^'t         |  は  ん ・
      ,"  ,~         ヾ~'-、__ ミ_ξ丶     |  な  中 ・
     ;'  ,イ ..          ヽ_   ヾ、0ヽ丶    l         /
     ( ;":: |: :: ..          .`,   ヾ 丶 !    \____/
     ;;;; :: 入:: :: ::      l`ー-、   )l   ヾ 丶
     "~、ソ:: :い:: :     \_  ノ ,    ヾ 丶
957デフォルトの名無しさん:2012/03/01(木) 16:04:09.73
>>954
新しい言語を作るつもりなら期待してやっても良いぞ
print FILEHANDLE LIST
958デフォルトの名無しさん:2012/03/01(木) 16:07:18.91
>カンマを端折ってprint 3 + 5 8とすると区切りが分からなくなる。
分からなくはない
コンパイラが8が演算子かどうか調べればいい
見た目が分かりにくくはなるが
959デフォルトの名無しさん:2012/03/01(木) 16:08:43.91
このスレ馬鹿が多いなw
晒しage
960デフォルトの名無しさん:2012/03/01(木) 16:12:51.04
こういうのを自己言及と言います
961デフォルトの名無しさん:2012/03/01(木) 16:14:04.23
カリー化と括弧省略の合わせワザが使えたら、間違いなく地獄を見るな。
962デフォルトの名無しさん:2012/03/01(木) 16:14:28.41
perlは文法が適当だからな
括弧で括るけど、気に入らなければ無くてもいい
ヒュペリオンよりも適当
963デフォルトの名無しさん:2012/03/01(木) 16:34:31.90
$a = 1;
print ($a+1)*2 . "\n";

これでいいだろ、と直感的には思うのに、

print (($a+1)*2) . "\n";

こうでないと思い通りには動かない
964デフォルトの名無しさん:2012/03/01(木) 16:42:07.59
後者も上手く動いてないだろ。改行文字は出力されない。
ラクダ本曰く関数呼び出しは関数呼び出しのように振る舞う。
print (($a+1)*2) . "\n";これは
print (($a+1)*2)で1つの関数呼び出しになっている。#=> 4が出力される
その返り値に. "\n"されたものがヴォイドコンテキストで評価される。 #=> "4\n"が生成されて捨てられる
965デフォルトの名無しさん:2012/03/01(木) 16:45:33.11
print (($a+1)*2 . "\n");
こっち
966デフォルトの名無しさん:2012/03/01(木) 16:48:18.00
つーかそれは
print +($a+1)*2 . "\n";
でもできるよね
967デフォルトの名無しさん:2012/03/01(木) 16:49:31.13
その+地味に使えるよな。
+演算子は前に項がない場合何もしない、だっけ。
968デフォルトの名無しさん:2012/03/01(木) 17:11:27.24
でもトリッピーだよな
何このプラス?、取っていい? って思う
書いた本人が暫く経つと思う

全体を括弧で括るのも、取っていい? って思いがちだけど
ぱっと見に異常さがなくて、かつ最もシンプルな書き方がベスト
969デフォルトの名無しさん:2012/03/01(木) 17:47:35.32
トリッピーってのは
書いた本人なのに暫く経つとなんで「+」つけたか忘れちゃうようなトリ頭のこと?
970デフォルトの名無しさん:2012/03/01(木) 17:49:41.94
英語教材のアレだろ
そのわりにはアレだな
アレ
とりっぴぃ()
971デフォルトの名無しさん:2012/03/01(木) 18:07:50.60
# 頭の+は取るな
とか書いとけば嫌でも思い出すけど、
意味があってやってることを忘れてると、普通に消し忘れに見えるぞ
それほどまでに print は括弧を付けて使わない
972デフォルトの名無しさん:2012/03/01(木) 21:28:37.85
@a = ([1, 2], [3, 4]);
print $a[0][0];

$b = [[1, 2], [3, 4]];
print $$b[0][0];

どっちが好き?
973デフォルトの名無しさん:2012/03/01(木) 21:59:51.62
うるさいゴミ
974デフォルトの名無しさん:2012/03/01(木) 22:06:46.87
これがオレの流法
print $b->[0]->[0]';
975デフォルトの名無しさん:2012/03/01(木) 22:11:24.09
print $c, "\n";
のprintの話ではないけど…

Perlの前に、AWKがあった。
AWKの場合、
$c "\n"
で連結される。

「何もないものを演算子にしてしまうと、/pat/ /pat/がパースできなくなってしまう。
なぜなら、3番目のスラッシュが除算演算子と解釈されてしまうからだ」
『プログラミングPerl改訂版』2000年3月21日オライリー・ジャパン
976975:2012/03/01(木) 22:15:22.43
>>975は、p. 610
awkユーザがはまりやすい罠(8.2.3)
977デフォルトの名無しさん:2012/03/01(木) 22:34:37.21
結合する時は結合先のバッファを確保して、strcpyすんだよ
#include <string.h> を忘れがちだから注意な
978デフォルトの名無しさん:2012/03/01(木) 22:52:27.95
>>972
ケースバイケース
979デフォルトの名無しさん:2012/03/02(金) 01:22:35.76
ケースバイケースとか状況に依るとか言うやつで
特徴を掴んだ典型例を2つ3つ示せない奴は無能
980デフォルトの名無しさん:2012/03/02(金) 01:40:41.97
後ろから詰めていきたいのですが。
($hoge, $huge, $asdf) = @aryとした場合、リストが左寄せで代入され、要素が不足した部分にはundefが入りますが
これを右寄せで代入したいです。
最初のゲスコード

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;

今はこんな感じにしています。もっと変な方法を教えて下さい。
981デフォルトの名無しさん:2012/03/02(金) 01:48:51.67
好みを訊かれてるのにケースバイケースになる奴は、
天気によってコーディングのスタイルを変える
982デフォルトの名無しさん:2012/03/02(金) 01:53:59.72
俺も人に何かきかれたときに、自分のレベルでは太刀打ちできないときはケースバイケースって言ってるよ
40%くらいの確率で「ああ、やっぱそうっすよねー」って丸め込める
でも1対1のときで40%くらいだから、集団の中で使うには分が悪い
>>979みたいなアグレッシブな奴にバレる
983デフォルトの名無しさん:2012/03/02(金) 01:58:10.41
晴れの日にはカラッと見通しの良く可読性のいい気分の良いコード
雨の日にはしっとり上品で丁寧なアルゴリズム、雨の中純白色した傘をさし、しとしとと歩くお嬢様のようにどこか儚いコード
984デフォルトの名無しさん:2012/03/02(金) 02:03:44.37
>>980
my ($konsyu, $sensyu, $sensen) = reverse @ARGV;
985デフォルトの名無しさん:2012/03/02(金) 02:31:04.74
>>980
my ($sensen, $sensyu, $konsyu) = @ARGV[-3, -2, -1];
986デフォルトの名無しさん:2012/03/02(金) 04:26:57.50
Perlのスレッドについて質問です。
メインスレッドで無限ループのスレッドを生成したのですが、
メインスレッドから終了させる方法がわかりません。
下記のような方法では、メインスレッドも死んでしまいます。
$thread->exit();

どうすれば良いですか?
987986 :2012/03/02(金) 04:45:58.41
自己解決しました
988デフォルトの名無しさん:2012/03/02(金) 10:07:41.72
なんか、@ARGVを直で書くべきでない気がするので、
shiftを何回も使う以外の方法で、いい感じに引き数を取得する方法は無いだろうか
989デフォルトの名無しさん:2012/03/02(金) 10:29:57.30
984の方法があまりにも鮮やかだったから
嫌みでもタレてんの?
990デフォルトの名無しさん:2012/03/02(金) 11:04:43.35
> なんか、@ARGVを直で書くべきでない気がするので、

なんか気がすると言われても、他の人はそう思ってないから……
991デフォルトの名無しさん:2012/03/02(金) 11:09:52.04
>>988
引数を便利に取得するモジュールいろいろあると思うから探したら?
992デフォルトの名無しさん:2012/03/02(金) 12:09:46.45
>>989
自分で鮮やかとか言うなし
993デフォルトの名無しさん:2012/03/02(金) 12:19:43.13
Getopt つかえば @ARGV はあんまり参照しなくていいじゃん。
994デフォルトの名無しさん:2012/03/02(金) 12:30:30.89
バカがこねくりまわし時間とて3行費やして自己満足してるのに
リバースで一行、

バカが@ARGV使うなとかワメくのもわかるよ
嫉妬と無能の自己紹介そのものだもん
995デフォルトの名無しさん:2012/03/02(金) 13:11:35.16
( ..)φメモメモ
996デフォルトの名無しさん
次スレは>>1001がよろ